我正在使用 WindowChrome,并自定义我的应用程序的边框和标题栏,它在大多数情况下都可以正常工作:
但是,由于某种原因,当我在某个虚拟机(在这种情况下,使用 VMware 的德语)上运行时,会出现一个白色边框和标题栏(虽然没有标题),并覆盖我的自定义标题栏:
奇怪的是,我尝试使用Snoop检查应用程序,即使在 VM 上,Snoop 似乎也不承认存在此栏。例如,将鼠标悬停在不同的 WPF 组件上,如果我使用 Snoop 的“放大”功能,标题栏会正确显示!
这个标题栏可能来自哪里以及如何摆脱它?
下面是一个简单应用程序的 XAML 代码,它表现出同样的问题:
<Window x:Class="XamlMessing.MainWindow"
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"
xmlns:local="clr-namespace:XamlMessing"
mc:Ignorable="d"
Title="MainWindow" Height="298" Width="399" Background="#FF590B0B">
<Window.Resources>
<WindowChrome x:Key="MyWindowChrome">
<WindowChrome.CaptionHeight>48</WindowChrome.CaptionHeight>
</WindowChrome>
<Style x:Key="MyWindowStyle" TargetType="{x:Type Window}" BasedOn="{StaticResource {x:Type Window}}">
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="ResizeMode" Value="NoResize" />
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="UseLayoutRounding" Value="True" />
<Setter Property="TextOptions.TextFormattingMode" Value="Display" />
<Setter Property="WindowState" Value="Normal" />
<Setter Property="WindowStyle" Value="SingleBorderWindow" />
<Setter Property="WindowChrome.WindowChrome" Value="{StaticResource MyWindowChrome}"/>
</Style>
</Window.Resources>
<Window.Style>
<StaticResource ResourceKey="MyWindowStyle"/>
</Window.Style>
<Grid Margin="0,0,81,107">
<TextBlock HorizontalAlignment="Left" Margin="125,89,0,0" TextWrapping="Wrap" Text="Hello, World" VerticalAlignment="Top" Height="61" Width="175" FontSize="24" Foreground="#FFDAE463"/>
</Grid>
</Window>