【问题标题】:Manage a space where you can move things (Silverlight)管理可以移动物品的空间(Silverlight)
【发布时间】:2011-01-23 23:05:07
【问题描述】:

我正在考虑在我的应用程序中管理“工作区”的更好方法,用户可以在该空间中移动东西,例如可以平移。

假设我有我的应用程序界面,周围有一些按钮、一个树视图等,中间是一个带有一些小部件的 Canvas,用户可以移动和使用,他可以平移这个空间以在其中移动。

对于平底锅,我想在这个空间中处理 MouseLeftButtonDown(将布尔值“UserMoving”切换为 true),并在 MouseMove 上应用到空间的平移(来自两个事件之间的 Delta) ,直到我检测到一个 MouseLeftButtonUp,才能知道他已经停止(UserMoving 为 false)。问题是,如果用户“鼠标左键向上”不在空间本身(画布)上,我永远不会知道他已经释放了鼠标。他可以在应用程序的任何位置释放平移(或小部件的拖放)这一事实,最好的管理方法是什么?

有人已经管理过类似的事情并且可以帮助我吗?

【问题讨论】:

    标签: silverlight drag-and-drop pan


    【解决方案1】:

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

    鼠标抬起,拨打ReleaseMouseCapture

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 2022-08-24
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多