【问题标题】:WPF ToolWindow that is not showed in taskbar block the application任务栏中未显示的 WPF ToolWindow 会阻止应用程序
【发布时间】:2012-11-14 19:25:52
【问题描述】:

当您处于以下情况时会出现此问题: - 在我的应用程序中有一个主窗口 -我创建了另一个不显示在任务栏中的窗口,并且是一个工具窗口。 -我将第二个窗口显示为对话框窗口(来自主窗口) -我切换到系统中运行的另一个应用程序,当我回到应用程序时,显示主窗口,但它被第二个窗口锁定,没有显示。

这是第二个窗口的代码:

<Window x:Class="WpfApplication1.DialogWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="DialogWindow" Height="300" Width="300" WindowStartupLocation="CenterScreen" WindowStyle="ToolWindow" ShowInTaskbar="False">
   <!--Some content-->
</Windows>

这是显示第二个窗口的代码:

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        var dialogWindow = new DialogWindow();
        dialogWindow.ShowDialog();
    }

我怎样才能解决这个问题,并且仍然显示一个不显示在任务栏中的对话框窗口?

【问题讨论】:

    标签: c# wpf dialog taskbar


    【解决方案1】:

    我认为您应该将DialogWindow.Owner 属性设置为父窗口。看到这个答案WPF: How do I set the Owner Window of a Dialog shown by a UserControl?

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        var dialogWindow = new DialogWindow();
        dialogWindow.Owner = Window.GetWindow(this)
        dialogWindow.ShowDialog();
    }
    

    这应该始终将DialogWindow 模态地放在其父级之前。

    【讨论】:

      【解决方案2】:

      TopMost=True 设置为对话窗口。

      【讨论】:

      • 是的,但这会显示在所有其他窗口上,还有其他方法吗?
      猜你喜欢
      • 2011-01-22
      • 2012-08-27
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 2011-03-13
      • 2014-07-09
      相关资源
      最近更新 更多