問題

トグルボタンがチェックされているときにトグルボタンの背景色を変更し、逆も同様です。

どうすればそれを達成できますか?

  ベストアンサー

 <ToggleButton Content="toggle">
    <ToggleButton.Style>
        <Style TargetType="{x:Type ToggleButton}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ToggleButton">
                        <Border BorderBrush="{TemplateBinding BorderBrush}" 
                                Background="{TemplateBinding Background}">
                            <ContentPresenter HorizontalAlignment="Center"                  
                                              VerticalAlignment="Center"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter> 
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Background" Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>
 

クラウスのものとほぼ同じですが、 "TargetName"の代わりに "TemplateBinding"を使用しています。 TemplateBindingを使用すると、ControlTemplateはToggleButtons DefaultStyleのBorderBrushとBackgroundを使用します。したがって、TriggerはToggleButtonsの背景を設定でき、Borderではこれも表示されます。

  同じタグがついた質問を見る

wpf