Я создаю класс, унаследованный от Window
, который добавляет некоторые дополнительные функции к панели заголовков.
Я попытался воссоздать строку заголовка Windows 10, используя этот XAML в качестве минимизации, восстановления Кнопки / развернуть и закрыть:
<Button x:Name="CloseButton"
Click="CloseButton_Click"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Content="" FontFamily="Segoe MDL2 Assets" FontSize="10" Padding="15,10" Background="Transparent" BorderBrush="Transparent" Foreground="White"
DockPanel.Dock="Right">
<Button.Style>
<Style TargetType="{x:Type Button}"/>
</Button.Style>
</Button>
<Button x:Name="MaximizeButton"
Click="MaximizeButton_Click"
DockPanel.Dock="Right"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="Segoe MDL2 Assets" FontSize="10" Padding="15,10" Background="Transparent" BorderBrush="Transparent" Foreground="White">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Button.Content" Value="" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}, Path=WindowState}" Value="Maximized">
<Setter Property="Button.Content" Value="" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:MainWindow}}, Path=WindowState}" Value="Normal">
<Setter Property="Button.Content" Value="" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<Button x:Name="MinimizeButton"
Content=""
Click="MinimizeButton_Click"
DockPanel.Dock="Right"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontFamily="Segoe MDL2 Assets" FontSize="10" Padding="15,15,15,5" Background="Transparent" BorderBrush="Transparent" Foreground="White">
<Button.Style>
<Style TargetType="{x:Type Button}"/>
</Button.Style>
</Button>
Проблема в том, что, хотя моя кнопка «Развернуть» правильно отображается следующим образом, изначально:
Если я щелкну по нему, оно превратится в следующее:
Что похоже на недопустимый символ? Это действительный символ в соответствии с Segoe UI MDL2: рекомендации по значкам .
Если я снова нажму на него, чтобы восстановить его, восстановление будет работать правильно, но значок останется прежним и не изменится вернуться к правильному изображению, это:
Что-то не так с моим Style
или DataTrigger
?
You Заметьте, что я пробовал AncestorType={x:Type Window}}
и AncestorType={x:Type local:MainWindow}}
, MainWindow
как мой класс, но ни один из них не имел никакого значения.