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 に答える