2016-07-28 104 views
-1

我有以下的风格切换按钮的边框颜色不会更改?

<Style TargetType="{x:Type ToggleButton}" x:Key="ListToggleButton"> 
      <Setter Property="FontSize" Value="15" /> 
      <Setter Property="SnapsToDevicePixels" Value="True" /> 
      <Setter Property="Foreground" Value="#FF232A2E"/> 
      <Setter Property="Background" Value="White"/> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type ToggleButton}"> 
         <Border Background="{TemplateBinding Background}" BorderBrush="#FFECECEC" BorderThickness="0,0,0,1"> 
          <Grid> 
           <ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,0" /> 
          </Grid> 
         </Border> 
         <ControlTemplate.Triggers> 

          <Trigger Property="IsChecked" Value="False"> 
           <Setter Property="Background" Value="#FF232A2E"/> 
           <Setter Property="BorderBrush" Value="#FFECECEC"/> 
           <Setter Property="BorderThickness" Value="0,0,0,1"/> 
          </Trigger> 

          <Trigger Property="IsChecked" Value="True"> 
           <Setter Property="Background" Value="#FFF5F5F5"/> 
           <Setter Property="BorderBrush" Value="#FF25a0da"/> 
           <Setter Property="BorderThickness" Value="0,0,0,2"/> 
          </Trigger> 

         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

我想改变边框的颜色,当我检查的按钮,背景的变化,但不接壤!

我错过了什么提前

回答

1

您需要为边界指定一个名称,并在SetterTargetName下指定它

感谢。当您省略TargetName时,它将设置触发器所有者的属性值(在本例中为ToggleButton本身)。 Background setter正在工作,因为边框的背景是模板绑定到togglebutton的背景属性。

<Style TargetType="{x:Type ToggleButton}" x:Key="ListToggleButton"> 
    <Setter Property="FontSize" Value="15" /> 
    <Setter Property="SnapsToDevicePixels" Value="True" /> 
    <Setter Property="Foreground" Value="#FF232A2E"/> 
    <Setter Property="Background" Value="White"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ToggleButton}"> 
       <Border x:Name="ButtonBorder" Background="{TemplateBinding Background}" BorderBrush="#FFECECEC" BorderThickness="0,0,0,1"> 
        <Grid> 
         <ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,0" /> 
        </Grid> 
       </Border> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsChecked" Value="False"> 
         <Setter Property="Background" Value="#FF232A2E"/> 
         <Setter Property="BorderBrush" Value="#FFECECEC" TargetName="ButtonBorder"/> 
         <Setter Property="BorderThickness" Value="0,0,0,1" TargetName="ButtonBorder"/> 
        </Trigger> 
        <Trigger Property="IsChecked" Value="True"> 
         <Setter Property="Background" Value="#FFF5F5F5"/> 
         <Setter Property="BorderBrush" Value="#FF25a0da" TargetName="ButtonBorder"/> 
         <Setter Property="BorderThickness" Value="0,0,0,2" TargetName="ButtonBorder"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

非常感谢:)我适当的帮助。 –