0

假设我有 n 个矩形。我希望它们表现得这样,当我单击任何矩形时,它应该被填充为白色,而所有其他矩形都应该被填充为黑色。

我知道我可以创造一种风格。但是在创建样式时,我可以告诉触发器用黑色填充矩形,但我怎么能说用白色填充所有剩余的矩形。

任何人都可以建议我吗?我想要一个小提示。

4

2 回答 2

2

不要让矩形像 一样工作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>
于 2013-07-03T08:53:44.853 回答
1

你自己已经回答了这个问题。选择两个单选按钮并尝试编辑模板。基本上,当您仔细查看模板时,您会发现一个带有点的椭圆,其可见性在鼠标单击时被关闭

您可以使用具有一定厚度的矩形/边框来代替椭圆,并在鼠标单击时设置其背景颜色

于 2013-07-03T08:46:56.230 回答