zoukankan      html  css  js  c++  java
  • dockManager中DockPanel的刷新问题!

    使用的是DevExpress的dockManager控件,新增一个DockPanel,在DockPanel中添加一个AxMapControl控件并设置默认加载地图。

    实现效果图如下:

    image

    但是存在一个问题,那就是在DockPanel默认加载时候如果使用的是AutoHide状态,在鼠标放在左侧标签时候(只是鼠标放在上面而没有点击),会自动弹出显示该DockPanel,但是该DockPanel中的地图控件显示异常。

    效果如下图所示:

    image(正常情况下应该与上图完全相同)

    似乎是刷新不完全,只有DockPanel的右侧一点地方的内容显示出来了,其他的内容呢?(如果是点击显示或者DockPanel在默认加载时不是AutoHide状态,均不会出现这种情况)

    本来以为在DockPanel完全显示处理进行一下AxMapControl的刷新即可,但是找不到DockPanel相应的事件(大部分事件像是Resize等在窗体大小刚改变的时候就触发了,而不是显示完全后才触发)。

    最终在无奈的情况下初步做了几种处理方法,但是都存在一定的问题。

    1、在加载的时候使DockPanel为DockVisibility.Visible状态,禁用AutoHide状态(选择该DockPanel设置其ShowAutoHideButton为False即可)。

    2、设置DockManager的AutoHideSpeed尽量高一些(我设置为50),这样也可以避免此种情况的发生,但是没有那种慢慢弹出DockPanel的效果了,鼠标放在标签上DockPanel就瞬间弹出了,比较突兀。

    3、在加载的时候先进行一下初始化工作,即先通过dockPanelEagle.Show();显示一下,在通过dockPanelEagle.HideSliding();进行隐藏。这种方法的得到的记过显示上有一定改善,但是也存在局部位置的刷新问题。

    现在暂且用第二种方法处理的,对于这个问题实在是比较无语,尝试了好一阵也没有完美解决,请问大家有遇见过这个问题的吗?有好的解决方法不。

  • 相关阅读:
    epoll使用(转)
    8、多线程小结(1)(转)
    9、多线程小结(2)(转)
    长连接和短连接(转)
    5、线程终止方式:(转)
    linux中read,write和recv,send的区别(转)
    数据访问函数库的使用方法(二)—— 获取记录集和使用事务的方法
    我想到的几句话。
    关于博克园T恤的一点想法。
    我自己写的一个分页控件(源码和演示代码)PostBack分页版 for vs2003、SQL Server
  • 原文地址:https://www.cnblogs.com/Jingkunliu/p/4269802.html
Copyright © 2011-2022 走看看