Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WPF中禁用焦点?_Wpf - Fatal编程技术网

如何在WPF中禁用焦点?

如何在WPF中禁用焦点?,wpf,Wpf,我创建了一个应用程序,但焦点有问题。如何在加载窗体时禁用另一个主窗体的焦点?WPF窗体具有ShowActivated属性。将此设置为false,表单将无法获得焦点 您还可以覆盖OnActivated方法: protected override void OnActivated(EventArgs e) { base.OnActivated(e); //Set the window style to noactivate. WindowIn

我创建了一个应用程序,但焦点有问题。如何在加载窗体时禁用另一个主窗体的焦点?

WPF窗体具有ShowActivated属性。将此设置为false,表单将无法获得焦点

您还可以覆盖OnActivated方法:

protected override void OnActivated(EventArgs e)
    {
        base.OnActivated(e);

        //Set the window style to noactivate.
        WindowInteropHelper helper = new WindowInteropHelper(this);
        SetWindowLong(helper.Handle, GWL_EXSTYLE,
            GetWindowLong(helper.Handle, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
    }   

    private const int GWL_EXSTYLE = -20;
    private const int WS_EX_NOACTIVATE = 0x08000000;

    [DllImport("user32.dll")]
    public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

    [DllImport("user32.dll")]
    public static extern int GetWindowLong(IntPtr hWnd, int nIndex);

你能更详细地解释一下你的问题吗?你的问题很模糊。您是否有任何代码可以提供给我们,或者至少有更好的解释?您希望非模式窗口在加载时获得焦点?很抱歉,我的问题不清楚,我使用的通知与skype类似​​ 通知当用户在线时它会显示通知信息,所以我希望你们能帮助我,不要把注意力集中到主窗体上。希望你能理解!SHowActivated=false,但仍然是焦点,但我想使用OnActivated函数,如何调用OnActivated函数?