如何从任务栏(WPF)隐藏打开的子窗口?

时间:2018-07-30 14:15:41

标签: c# .net wpf

当我显示和隐藏子窗口时,即使我隐藏了子窗口,隐藏的窗口仍然出现在任务栏(WPF)中,如何从任务栏中隐藏打开的子窗口?

预先感谢

这是一个显示对话框的示例:

            AlignLocalAxisView alignLocalAxisView = Container.Resolve<AlignLocalAxisView>(new ParameterOverride("model", AttributesSelectedItems));
            OpenedWindowView = alignLocalAxisView;
            alignLocalAxisView.Show();

1 个答案:

答案 0 :(得分:3)

窗口应该有一个ShowInTaskBar属性。

如果您的窗口是在XAML中定义的,则可以如下所示故意设置属性:

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="MyApplication.MainWindow"
    Title="MainWindow" 
    Height="350" Width="425" 
    ShowInTaskbar="False">

您也可以在您的代码后面进行设置:

this.ShowInTaskbar = false;

这也适用于通过名称调用后在代码中创建的窗口。

Window myNewWindow = new Window();

//Set the property to keep the window hidden in the task bar
myNewWindow.ShowInTaskbar = false;

//Then, show the window
myNewWindow.Show();

编辑:根据您的示例代码,以下应该起作用

AlignLocalAxisView alignLocalAxisView = Container.Resolve<AlignLocalAxisView>(new ParameterOverride("model", AttributesSelectedItems));

OpenedWindowView = alignLocalAxisView;

//Assuming your view extends the Window class, the following will work
alignLocalAxisView.ShowInTaskbar = false;

alignLocalAxisView.Show();

希望这足以解决问题。

不过,供以后参考,这是在Google上查找的一种相当快速的解决方案-通常值得首先寻找答案,因为它有时可能是解决问题的较快方法。

在这种情况下,我将您的问题改写为“在wpf中隐藏窗口的任务栏图标”。搜索中实际上不需要子窗口部分,因为WPF中的所有窗口基本上都相同。

我希望能有所帮助。