带有自定义WindowChrome的WPF窗口最大程度地发挥了不同作用

时间:2019-02-13 18:18:31

标签: c# wpf window-chrome

我刚开始在WPF窗口上使用WindowChrome Class。我注意到,最大化窗口时,根据我使用的是标准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>

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

NormalChromeMaximized 最大化,标准Chrome-这可以在屏幕上显示完整的Teal边框。

CustomChromeNotMaximized 在使用WindowChrome样式化Window的情况下,这看起来好像没有最大化。您会从WindowChrome和Teal边框看到边框。

CustomChromeMaximized 这看起来像是最大化的。我在Window Chrome中的边框消失了,只有大约一半的Teal边框在那里。

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

0 个答案:

没有答案