如何让窗口窗体控制捕获拖动输入而不是嵌入的 WPF 画布

本文关键字:画布 WPF 输入 拖动 窗口 窗体 控制 | 更新日期: 2023-09-27 18:32:01

这是一个非常基本的设置。我有一个 System.Windows.Forms 面板,其中包含一个 ElementHost 控件,该控件包含 System.Windows.Controls Canvas。用户开始拖动操作,拖动输入事件从 Canvas 控件触发,但我真正想要的是画布忽略拖动输入,并且事件由保存画布的父 System.Windows.Forms.Panel 捕获。我该怎么做?

如何让窗口窗体控制捕获拖动输入而不是嵌入的 WPF 画布

对此的简单答案是,你不能那样做。如果将 Win32、WPF 或 DirectX 技术相互混合,则顶部的那个优先,它是其他技术的黑洞。您遇到的限制称为空域,如果您搜索周围,您会发现许多讨论空域限制和混合WPF/Winforms/DirectX内容的文章。请参阅以下链接:

技术区域概述

可能有一些方法可以帮助您尝试完成的工作提供解决方法。例如,在 WPF 中处理输入,然后以某种其他方式将其显式传递回程序。一些快速谷歌搜索显示:

缓解空域问题

WPF 和 Win32 互选项