gpt4 book ai didi

wpf - .NET 4.0 和 WindowsFormstHost 的窗口焦点问题

转载 作者:行者123 更新时间:2023-12-04 08:53:30 25 4
gpt4 key购买 nike

我遇到了一些奇怪的行为:

  • 添加一个简单的表单控件
    文本框到 WindowsFormsHost;
  • 添加一个按钮打开另一个
    WPF 窗口(不设置所有者);
  • 最大化原始 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/

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