我刚刚开始在 WPF 窗口上使用WindowChrome 类。我注意到,在最大化窗口时,它的显示会有所不同,具体取决于我使用的是标准 Chrome 还是自定义 Chrome。为什么?
在这两种情况下,我都双击窗口顶部以最大化,后面没有代码。
这是 XAML - 添加或删除 WindowChrome 我只是删除 Style 属性。
<Window
x:Class="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:local="clr-namespace:IPSurfer"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="MainWindow"
Width="800"
Height="450"
Style="{DynamicResource ResourceKey=StandardStyle}"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<!-- Style="{DynamicResource ResourceKey=StandardStyle}" -->
<Window.Resources>
<Style x:Key="StandardStyle" TargetType="{x:Type local:MainWindow}">
<Setter Property="WindowChrome.WindowChrome">
<Setter.Value>
<WindowChrome
CaptionHeight="50"
GlassFrameThickness="0"
ResizeBorderThickness="5" />
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MainWindow}">
<Grid>
<Border BorderBrush="PeachPuff" BorderThickness="5">
<Grid>
<ContentPresenter Content="{TemplateBinding Content}" />
<TextBlock
Margin="10,8,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Text="This is the new title" />
</Grid>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Border BorderBrush="Teal" BorderThickness="5">
<Grid>
</Grid>
</Border>
</Grid>
最大化,标准 Chrome - 这显示了适合屏幕的完整蓝绿色边框。
使用 WindowChrome 样式的 Window 看起来就像没有最大化。您会看到我的 WindowChrome 和蓝绿色边框的边框。
这就是它看起来最大化的样子。我在 Window Chrome 中的边框消失了,只有大约一半的蓝绿色边框在那里。
我还注意到,当我查看最大化时窗口的实际宽度和高度时,值是相同的。只是显示的内容不同。