gpt4 book ai didi

c# - 将 WPF 事件映射到 Windows 窗体事件

转载 作者:行者123 更新时间:2023-11-30 22:32:44 25 4
gpt4 key购买 nike

我有一个复杂的系统,需要 Winform 事件才能工作。但是,我想向其中添加 WPF 元素。所以我需要将所有 WPF 事件映射到它们的 winform 对应物。例如。我有这个方法可以转换派生的 ElementHost 类中的 MouseMove 事件。

    private void Child_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
Point point = e.GetPosition(null);
System.Windows.Forms.MouseEventArgs eventArgs =
new System.Windows.Forms.MouseEventArgs
(System.Windows.Forms.MouseButtons.Left, 0, (int)point.X, (int)point.Y, 0);
OnMouseMove(eventArgs);
}

请注意 System.Windows.Input.MouseEventArgs (WPF) 和 System.Windows.Forms.MouseEventArgs (Winforms) 之间的区别。

问题是需要以这种方式映射的事件太多。如果不为每个事件编写我自己的映射方法,是否有可能实现这一点?

最佳答案

不,没有办法自动完成,因为 WPF 和表单有不同的参数和事件,并在不同的情况下触发它们。你正试图将两个截然不同的事物结合起来,我怀疑这是在走向噩梦。

你想达到什么目的?我假设某种 GUI 抽象?您的抽象可能会更好地移动到代码的更下方,并让 GUI 按他们想要的方式运行。

编辑:好的,我从您的编辑中看到您在 WPF 控件上实现了一个外观,以允许它们在您的表单环境中运行。除了手动操作之外,看不到任何其他方法。您真的必须使用 WPF 控件吗?

关于c# - 将 WPF 事件映射到 Windows 窗体事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8605595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com