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。
Tags:Silverlight 窗口 设计
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接