【问题标题】:WPF - Get relative Canvas coordinates after a drag/drop operation?WPF - 在拖放操作后获取相对 Canvas 坐标?
【发布时间】:2017-12-05 16:37:16
【问题描述】:

在 WPF 中,我有一个自定义“工具箱”,它由标签控件和一些停靠在屏幕左侧的矢量图标组成。

在中心,我有一个 Canvas 控件,我最终需要为这个“设计器表面”序列化相对坐标(对于其他平台)。

基本问题,我可以将控件从这个伪控件框拖放到画布上,但我需要知道如何将这个 WPF 控件正确放置在画布中,鼠标指针所在的位置,真实 em> 到 Canvas 而不是屏幕或主窗口。

需要调用哪些函数才能确保如果我将 Button 控件放在画布的 10%、20% 处,我会返回一个实际位置并且按钮会落在预期的位置?

【问题讨论】:

  • 你没有drop事件中的相对位置吗?如果没有,减去 Canvas 的位置不会给您与 Canvas 的相对位置吗?
  • DragEventArgs.GetPosiiton():e.GetPosition(whateverCanvasControl)。相对/比例坐标是相对容易的算术。
  • 我的“e.source”拖放是 Canvas 元素,而不是被拖放的项目。我在寻找什么属性?

标签: c# wpf canvas


【解决方案1】:

鼠标事件提供Point 结构。 Control.PointToScreenTargetControl.PointToClient可以进行仓位转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-21
    • 1970-01-01
    • 2015-11-24
    • 2013-02-12
    • 2010-10-25
    • 1970-01-01
    相关资源
    最近更新 更多