2011-01-23 98 views
1

我在想更好的方式来管理我的应用程序中的“工作区”,用户可以在这个空间移动东西,并且可以平移。管理一个空间,你可以移动东西(Silverlight)

让我们想象一下,我有我的应用程序界面,四周有一些按钮,一个树形视图等,在中间有一个用户可以移动和使用一些小部件的画布,他可以平移这个空间来移动它。

对于泛,我想在这个空间中处理MouseLeftButtonDown(将布尔型“UserMoving”切换为true),并在MouseMove上应用于翻译空间(从两个事件之间的Delta ),直到我检测到MouseLeftButtonUp,知道他已停止(UserMoving为false)。问题是,如果用户“鼠标左键按下”不在空间本身(帆布),我永远不会知道他已经释放鼠标。什么是最好的管理,他可以释放平底锅的事实(或在应用程序中的任何地方拖动小部件)?

有人已经管理这样的事情,可以帮助我吗?

回答

2

您应该在鼠标向下调用画布上的UIElement.CaptureMouse。这将保持画布接收鼠标事件,即使用户移动到其区域之外。

打开鼠标,拨打ReleaseMouseCapture

+0

好的谢谢你! – 2011-01-24 08:46:11

相关问题