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

Silverlight的弹出窗口--设计

 2009-02-25 11:56:37 来源:WEB开发网   
核心提示: 当IsDraggable被设定为true时,会调用EnableDrag方法,Silverlight的弹出窗口--设计(6),此方法如下:privatevoidEnableDrag(){PopupBox.DragMouseCaptureArea.MouseLeftButtonDown+=ne

当IsDraggable被设定为true时,会调用EnableDrag方法,此方法如下:

private void EnableDrag()
{
  PopupBox.DragMouseCaptureArea.MouseLeftButtonDown +=
    new MouseButtonEventHandler(Drag_MouseLeftButtonDown);
  PopupBox.DragMouseCaptureArea.MouseMove +=
    new MouseEventHandler(Drag_MouseMove);
  PopupBox.DragMouseCaptureArea.MouseLeftButtonUp +=
    new MouseButtonEventHandler(Drag_MouseLeftButtonUp);
}

此方法监听了3个事件,对于拖动的逻辑,是在MouseDown的时候设定“开始拖动”,在MouseMove的时候,如果已经“开始拖动”,则计算出鼠标移动的距离,使窗口移动同样的距离,最后在MouseUp的时候“停止拖动”,具体代码可以在源文件中找到,不再浪费此处的空间了~~

而当IsDraggable设为false的时候,则调用DisableDrag方法,方法如下:

private void DisableDrag()
{
  PopupBox.DragMouseCaptureArea.MouseLeftButtonDown -= Drag_MouseLeftButtonDown;
  PopupBox.DragMouseCaptureArea.MouseMove -= Drag_MouseMove;
  PopupBox.DragMouseCaptureArea.MouseLeftButtonUp -= Drag_MouseLeftButtonUp;
}

通过注销3个事件,自然也就停止了拖动的功能。

以后

下一篇将会比较详细地去讲述一下LayoutMask中的一些方法的实现,同时讲述诸如动画效果等复杂内容的实现,最后介绍如何扩展这个框架来实现自定义的PopupBox。

上一页  1 2 3 4 5 6 

Tags:Silverlight 窗口 设计

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