WEB开发网
开发学院图形图像Flash Silverlight的弹出窗口--设计 阅读

Silverlight的弹出窗口--设计

 2009-02-25 11:56:37 来源:WEB开发网   
核心提示: 3. ReorderZIndex:当然ZIndex是有最大值的,一个很熟悉的数字65535,Silverlight的弹出窗口--设计(5),所以如果不断地给窗口增加ZIndex,必将导致ZIndex超出范围,主要就是通过监听MouseDown,MouseUp,这当然不是我们所希望的结果,因

3. ReorderZIndex:当然ZIndex是有最大值的,一个很熟悉的数字65535,所以如果不断地给窗口增加ZIndex,必将导致ZIndex超出范围,这当然不是我们所希望的结果。因此就有了一个方法,当ZIndex已经过大的时候,将所有控件的ZIndex进行重新排列,按照现有的窗口叠放次序,从1开始重新排列ZIndex,保证ZIndex永远不会超过最大值(当然你硬要连续打开65536个窗口我也真没办法……)

4. RenderMask:当所有弹出窗口关闭时,遮罩层也应该相应消失,而当遮罩层未打开时,也不能打开新的窗口,所以这里就有一个流程,在第一个窗口打开时需要先将遮罩层打开,因此有了RenderMask方法,负责将遮罩层加入到所有者的子元素中并显示出来。

DragService:

DragService是一个辅助类,他将提供窗口的鼠标拖动功能,这个类的结构也非常简单,在构造的时候将需要窗口的对象传递给他,随后便可通过设定IsDraggable属性来打开/关闭鼠标拖动的功能,对于鼠标拖动的实现,在网上无论是FLEX,JS,WINFORM还是Silverlight都有很多的实现了,我使用的也与这些大同小异,主要就是通过监听MouseDown,MouseUp,MouseMove这3个事件来实现,可以看一下IsDraggable的实现:

public bool IsDraggable
{
  get
  {
    return m_IsDraggable;
  }
  set
  {
    if (m_IsDraggable == value)
    {
      return;
    }
    if (value)
    {
      EnableDrag();
    }
    else
    {
      DisableDrag();
    }
  }
}

上一页  1 2 3 4 5 6  下一页

Tags:Silverlight 窗口 设计

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接