假设我有 n 个矩形。我希望它们表现得这样,当我单击任何矩形时,它应该被填充为白色,而所有其他矩形都应该被填充为黑色。
我知道我可以创造一种风格。但是在创建样式时,我可以告诉触发器用黑色填充矩形,但我怎么能说用白色填充所有剩余的矩形。
任何人都可以建议我吗?我想要一个小提示。
假设我有 n 个矩形。我希望它们表现得这样,当我单击任何矩形时,它应该被填充为白色,而所有其他矩形都应该被填充为黑色。
我知道我可以创造一种风格。但是在创建样式时,我可以告诉触发器用黑色填充矩形,但我怎么能说用白色填充所有剩余的矩形。
任何人都可以建议我吗?我想要一个小提示。
不要让矩形像 一样工作RadioButtons
,要让它RadioButtons
看起来像矩形。
我建议RadioButton
改用并更改模板以使其看起来像矩形。然后您可以根据RadioButton.IsChecked
属性触发背景更改。这种方式RadioButton
将负责勾选/取消勾选操作并触发RadioButtons
同一组中其他人的背景更改。
<Style TargetType="{x:Type RadioButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RadioButton}">
<Border BorderBrush="Black" BorderThickness="1" Background="Black" x:Name="PART_Border">
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="PART_Border" Property="Background" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
并像这样使用你RadioButton
:
<RadioButton>
<RadioButton.Content>
<!-- content to be displayer inside border -->
</RadioButton.Content>
</RadioButton>
你自己已经回答了这个问题。选择两个单选按钮并尝试编辑模板。基本上,当您仔细查看模板时,您会发现一个带有点的椭圆,其可见性在鼠标单击时被关闭
您可以使用具有一定厚度的矩形/边框来代替椭圆,并在鼠标单击时设置其背景颜色