ShowInTaskBar设置为false,窗口仍在任务栏中可见

时间:2018-07-20 17:04:20

标签: wpf

如果将ShowInTaskbar设置为false,则该窗口在任务栏中仍然可见(Windows 10)。这不是我想要的。

xaml:

<Window x:Class="mycontrol.TextureProperties"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:foo"
         mc:Ignorable="d" 
         Title="Textures Dialog"
         d:DesignHeight="300" d:DesignWidth="300"
         Height="300"   Width="300" ResizeMode="NoResize" ShowInTaskbar="False" >
<Grid Width="300" Height="300">
    <Label Content="Textures Display here" />
</Grid>
</Window>

以及背后的代码:

public partial class TextureProperties : Window
{
    public TextureProperties()
    {
        InitializeComponent();
    }

}

以及我如何实例化它:

textures = new TextureProperties();
textures.WindowStartupLocation = WindowStartupLocation.Manual;
Debug.Assert(textures.ShowInTaskbar == false);
textures.Owner = this;
textures.Show();

其他:

  1. .NET 4.6.2
  2. 在Windows 10上运行

我尝试过:

  1. 调用textures.ShowDialog(),这也不起作用
  2. 在此处搜索关于stackoverflow的类似问题。我发现其中一种与之相关。他们想在任务栏上显示窗口,而不是像我想要的那样隐藏它。除非我尝试了答案(设置所有者属性),但对我没有帮助。
  3. 请注意,我断言ShowInTaskbar为假。断言不会在运行时触发。
  4. 所有不同的WindowsStyle选项,仍然无济于事。

[编辑]

经过进一步测试,我发现在调用Windows Show()方法之后,它将ShowInTaskbar再次设置为true。 不好的WPF!

textures.Show();
Debug.Assert(textures.ShowInTaskbar == false);

在上面的代码中,断言在运行时失败。那么,为什么要把它放在我背后呢?

1 个答案:

答案 0 :(得分:0)

您尝试使用#if DEBUG //...// #endif而不是Debug.Assert(..)吗?

还要检查您的调试配置-可能由于版本一而失败:)