wpf - 选中切换按钮时更改切换按钮的背景颜色

标签 wpf xaml

我想在选中切换按钮时更改切换按钮的背景颜色,反之亦然。

我怎样才能实现这一目标?

最佳答案

<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>

与 Klaus 几乎相同,但使用“TemplateBinding”而不是“TargetName”。 通过 TemplateBinding,ControlTemplate 使用 ToggleButtons DefaultStyle 中的 BorderBrush 和背景。因此,触发器可以设置 ToggleButtons 背景,并且通过边框,该背景也将显示。

关于wpf - 选中切换按钮时更改切换按钮的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618800/

相关文章:

.net - WPF 中没有通用的 RoutedEventHandler?

wpf - 如何在WPF网格中获取所选单元格的行索引

xaml - UWP页面过渡动画

WPF Xaml 处理顺序

c# - WPF MVVM Canvas ClickEvent

c# - 更改绑定(bind)中的默认千位和小数点分隔符

c# - 使用 Task.Factory.StartNew 时更新 UI 标签

c# - 如何为单个控件覆盖WPF MVVM中的 Material 设计并使用WPF的默认样式

c# - Caliburn.Micro - 将 ValueTuple 的 ObservableCollection 绑定(bind)到 ComboBox

c# - 在虚拟化列表框中延迟加载图像