我遇到了一些奇怪的行为:
文本框到 WindowsFormsHost;
WPF 窗口(不设置所有者);
并单击文本框,使其具有
重点;
激活另一个 WPF 窗口
它被激活的任务栏和
然后停用。
令人不安的是,如果我在 .NET 3.5 下编译它,它就没有问题。
有任何想法吗?
最佳答案
在派生窗口上实现这一点会有所帮助 - 但并不能完全解决问题:
protected override void OnDeactivated(EventArgs e)
{
var host = System.Windows.Input.FocusManager.GetFocusedElement(this) as System.Windows.Forms.Integration.WindowsFormsHost;
if (host !=null )
{
Focus();
}
base.OnDeactivated(e);
}
它在停用时将焦点设置为窗口 - 这还不够早,因此激活会翻转回来,但是当您第二次按 alt-tab 时它会切换。但是没有保留集中控制。我尝试调度焦点集 - 但没有好处。
关于wpf - .NET 4.0 和 WindowsFormstHost 的窗口焦点问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609836/