0

我刚刚开始在 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>

正常ChromeNotMaximized 未最大化,标准 Chrome - 注意蓝绿色边框

普通铬最大化 最大化,标准 Chrome - 这显示了适合屏幕的完整蓝绿色边框。

自定义ChromeNotMaximized 使用 WindowChrome 样式的 Window 看起来就像没有最大化。您会看到我的 WindowChrome 和蓝绿色边框的边框。

自定义Chrome最大化 这就是它看起来最大化的样子。我在 Window Chrome 中的边框消失了,只有大约一半的蓝绿色边框在那里。

我还注意到,当我查看最大化时窗口的实际宽度和高度时,值是相同的。只是显示的内容不同。

4

0 回答 0