0

我正在使用 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>
4

1 回答 1

0

好的,它似乎是通过设置来修复的......

<WindowChrome.GlassFrameThickness>0</WindowChrome.GlassFrameThickness>

但是我仍然很想知道是什么导致它首先出现,因为除了 VM 以外的设备不需要该设置......

于 2021-06-08T13:15:06.743 回答