禁止“活动WPF”中的“背景”窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了禁止“活动WPF”中的“背景”窗口相关的知识,希望对你有一定的参考价值。

这个有点难以解释,它与.NET和Windows操作系统有关,而不是WPF,但是我有一个带有“MainWindow”的WPF应用程序,在这个窗口中有一个菜单,如File,Edit如果用户单击其中一个菜单项,将通过ShowDialog()方法显示一个对话窗口。这可以像我期望的那样工作,但我已经有了这样做的请求,以便用户根本无法选择非活动窗口。用户当前可以通过转到任务栏并选择非活动窗口,然后将非活动窗口置于最前端。用户将无法执行任何操作,但它位于应该处于活动状态的窗口之上。这甚至可以纠正吗?

谢谢!

答案

可能有更好的方法来执行此操作,但使用主窗口激活事件更改为上一个已知对话框将起作用:

    Window lastWin;

    private void button_Click(object sender, RoutedEventArgs e)
    {
        var window1 = new Window1();
        lastWin = window1;
        window1.ShowDialog();
    }

    private void Window_Activated(object sender, EventArgs e)
    {
        if (lastWin != null)
        {
            lastWin.Focus();
        }
    }
另一答案

@ J.H。有我想要的想法。

基本上,我做了:

Application.Current.MainWindow.ShowInTaskbar = false;

像魅力一样工作(当对话窗口关闭时,确保将ShowInTaskbar设置为true)

以上是关于禁止“活动WPF”中的“背景”窗口的主要内容,如果未能解决你的问题,请参考以下文章

HTML代码片段

AlertDialog 更改片段中的背景颜色 [重复]

使用 Kotlin 更改片段中的按钮背景

Android片段中的动态背景

WinForm 禁止调整大小禁止最大化窗口

如何禁止 alert在浏览器中弹出信息。