Окно WPF с пользовательским WindowChrome максимизирует по-разному - PullRequest
0 голосов
/ 13 февраля 2019

Я только начал использовать WindowChrome Class в окне WPF.Я заметил, что при максимизации окна оно отображается по-разному в зависимости от того, использую ли я стандартный Chrome или пользовательский Chrome.Почему?

Я дважды щелкаю по верхней части окна, чтобы максимизировать, в обоих случаях нет никакого кода позади.

Вот XAML - добавить или удалить WindowChrome. Я просто удаляюСвойство стиля.

<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 Не развернуто, Стандартный хром - обратите внимание на границу Teal

NormalChromeMaximized Maximized, Standard Chrome - это отображение полной границы Teal на экране.

CustomChromeNotMaximized При использовании окна, стилизованного под WindowChrome, это выглядит не максимизированным.Вы видите границу из моего WindowChrome и границу Teal.

CustomChromeMaximized Вот как это выглядит в развернутом виде.Моя граница в Window Chrome исчезла, и там находится только около половины границы Teal.

Я также отмечаю, что когда я смотрю на фактическую ширину и высоту окна, при максимизации значение остается тем же.Это просто то, что отображается по-другому.

...