c# – Winforms中的WPF事件

c# – Winforms中的WPF事件,第1张

概述我有一个 Winforms应用程序,它在ElementHost中使用WPF控件(如果重要,则使用Avalon Edit). 它似乎工作正常,但我希望能够以Winforms方式处理此控件的KeyPress事件(没有RoutedCommands和InputGestures),所以我虽然可以使用KeyPreview设置处理Form的KeyDown事件,但WPF事件似乎没有冒泡到表格. 基本上,如何以Wi 我有一个 Winforms应用程序,它在ElementHost中使用WPF控件(如果重要,则使用Avalon Edit).

它似乎工作正常,但我希望能够以Winforms方式处理此控件的KeyPress事件(没有RoutedCommands和inputGestures),所以我虽然可以使用KeyPrevIEw设置处理Form的KeyDown事件,但WPF事件似乎没有冒泡到表格.

基本上,如何以Winforms方式访问WPF控件上的KeyDown事件?

解决方法 您可以尝试为 WpfControl本身添加自定义事件处理程序,而不是尝试连接到WinForm的KeyDown.

这是一个例子.假设:你的WinForm是Form1类型,WpfControl是UserControl1,WpfControl的元素主机被调用(不会猜到)) – elementHost.

public Form1(){    InitializeComponent();    elementHost.ChildChanged += ElementHost_ChildChanged;}private voID ElementHost_ChildChanged(object sender,ChildChangedEventArgs e){    var ctr = (elementHost.Child as UserControl1);    if (ctr == null)        return;    ctr.KeyDown += ctr_KeyDown;}voID ctr_KeyDown(object sender,System.windows.input.KeyEventArgs e){    /* your custom handling for key-presses */}

UPD:e.KeyboardDevice.ModifIErs(e是System.windows.input.KeyEventArgs)存储有关Ctrl,Alt等的信息.

总结

以上是内存溢出为你收集整理的c# – Winforms中的WPF事件全部内容,希望文章能够帮你解决c# – Winforms中的WPF事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1247211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存