gpt4 book ai didi

wpf - 托管在 ElementHost 中的 UserControl 出现奇怪的焦点问题

转载 作者:行者123 更新时间:2023-12-04 14:33:43 25 4
gpt4 key购买 nike

我有 UserControl,它位于 ElementHost 中.
它包含 DataGrid当用户按下回车键或双击该行时,将显示新窗口(无模式),并且当该窗口关闭时,带有 ElementHost 的窗口将重新激活。问题是 DataGrid 失去焦点。

Snoop 向我展示了可视化树具有以下结构:

AdornerDecorator -> AvalonAdapter -> 我的用户控件。
Snoop 显示激活后 AdornerDecorator 有属性

IsFocusable = false
IsFocused = false
IsKeyboardFocused = true
IsKeyboardFocusWithin = true

什么对我来说绝对是胡说八道。
当用户点击 Tab 或箭头键时,第一个启用的 UserControl 元素获得焦点。

我已阅读 this post我对此不满意:

Focus works differently for WPF and Windows Forms, and there were some rough edges around here that we were unable to fix. If you have focus inside a WindowsFormsHost and either minimize/restore the form or show a modal dialog, the focus inside the WindowsFormsHost may be lost – the WindowsFormsHost still has focus, but the control inside it may not.



怎么办?放松和快乐?
非常令人失望的是无法在其他应用程序中重现该问题。

谁能解释这种奇怪行为的原因是什么?
可能会提供一些解决方法。

最佳答案

这是一个已知的错误:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/7d41218e-c2bb-4957-b0b4-aa24efc4d8c2/

但不幸的是,连接的引用已经死了。

要解决此错误,我必须添加 IsVmFocused属性到我的 ViewModel 并创建我的 FocusHelper.IsFocused监听元素的 IsFocused 的附加属性属性改变和绑定(bind)虚拟机的属性。
您可以在此(与任务相关的)SO 问题中看到 xaml:What is a Cached acessor in the context of DataBinding?

关于wpf - 托管在 ElementHost 中的 UserControl 出现奇怪的焦点问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14480949/

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