[英]WPF Button DataTrigger not setting Content correctly
我正在制作一个 class,继承自Window
,它为 TitleBar 添加了一些额外的功能。
我尝试使用此 XAML 作为最小化、恢复/最大化和关闭按钮来重新创建 Windows 10 标题栏:
<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
有问题吗?
你会注意到我已经尝试过AncestorType={x:Type Window}}
和AncestorType={x:Type local:MainWindow}}
, MainWindow
是我的 class,但这些都没有任何区别。
我意识到我在MaximizeButton_Click
方法中设置了Button.Content
,但我已经忘记了。 删除它,这一切都按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.