我正在考虑在我的应用程序中管理“工作区”的更好方法,用户可以在这个空间中移动东西,例如可以平移。
假设我有我的应用程序界面,周围有一些按钮、一个树视图等,中间是一个带有一些用户可以移动和使用的小部件的 Canvas,他可以平移这个空间以在其中移动。
对于平底锅,我正在考虑在这个空间中处理 MouseLeftButtonDown(将布尔值“UserMoving”切换为 true),并在 MouseMove 上应用到空间的平移(从 2 个事件之间的 Delta),直到我检测到一个 MouseLeftButtonUp,就知道他已经停止了(UserMoving 为 false)。问题是,如果用户“鼠标左键向上”不在空间本身(画布)上,我永远不会知道他已经释放了鼠标。管理他可以在应用程序中的任何位置释放平移(或小部件的拖放)这一事实的最佳方法是什么?
有人已经管理过类似的事情并且可以帮助我吗?