如何以编程方式更改已选中/切换按钮的颜色

时间:2015-05-01 15:15:05

标签: c# wpf xaml

让我说我最初检查的切换按钮和背景颜色(按钮被选中/切换时的颜色,而不是按钮本身的颜色)默认为蓝色。如何更改选中/切换按钮的背景颜色?

例如:

if (myCondition == true)
    myToggleBtn.Background = System.Windows.Media.Brushes.Red;

上面的代码只是更改切换按钮本身的颜色,但我想更改颜色选中/切换按钮。

更新

<ToggleButton x:Name="Line1Btn" Content="Line 1" HorizontalAlignment="Left" Margin="8,84,0,0"
              VerticalAlignment="Top" FontFamily="Tahoma" FontSize="11" Height="26" Width="50"
              IsEnabled="True" BorderBrush="#FFC7C7C7" Click="Line1Btn_Click">
  <ToggleButton.Style>
    <Style TargetType="ToggleButton">
      <Setter Property="Background"> 
        <Setter.Value> 
          <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
            <GradientStop Color="#FFCFCFCF" Offset="0"/> 
            <GradientStop Color="White" Offset="1"/> 
          </LinearGradientBrush>
        </Setter.Value>
      </Setter>
      <Style.Triggers> 
        <Trigger Property="IsChecked" Value="True"> 
          <Setter Property="Background" Value="DarkSeaGreen"/> 
        </Trigger> </Style.Triggers>
    </Style>
  </ToggleButton.Style>
</ToggleButton>

更新2

enter image description here

从相同的代码生成,但显示不同的结果。

1 个答案:

答案 0 :(得分:2)

enter image description here您可以将此样式用于按钮

               <Style TargetType="Button">
                <Setter Property="Foreground" Value="Blue"></Setter>
                <Style.Triggers>
                    <Trigger Property="IsChecked" Value="True">
                        <Setter Property="Foreground" Value="Red" /> 
                    </Trigger>
                </Style.Triggers>
            </Style>