Окно WPF с пользовательским WindowChrome максимизирует по-разному

Я только начал использовать WindowChrome Class в окне WPF. Я заметил, что при максимизации окна оно отображается по-разному в зависимости от того, использую ли я стандартный 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 - обратите внимание на границу Teal

Maximized, Standard Chrome - показывает полную границу Teal на экране.

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

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

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

0 ответов

Другие вопросы по тегам