2015-07-10 63 views
0

这是我ToggleButton删除切换按钮backgroung在激活状态

<ToggleButton Width="100" Height="30" Margin="344,262,530,345" BorderThickness="2" Background="Transparent" 
       BorderBrush="#38abcf" FontFamily="Resources/#Buxton Sketch" Foreground="Gainsboro" FontSize="14"> 
    <ToggleButton.Style> 
     <Style TargetType="{x:Type ToggleButton}"> 
      <Setter Property="Content" Value="OFF"/> 
      <Style.Triggers> 
       <Trigger Property="IsChecked" Value="True"> 
        <Setter Property="Content" Value="ON"/> 
        <Setter Property="Foreground" Value="Red"/> 
        <Setter Property="Background" Value="Transparent"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ToggleButton.Style> 
</ToggleButton> 

目前在激活状态,它看起来像:

enter image description here

而且Background颜色没有改变,虽然我设置新的属性。

  • 更新

    <ToggleButton.Style> 
         <Style TargetType="{x:Type ToggleButton}"> 
          <Setter Property="Content" Value="Loops OFF"/> 
          <Setter Property="Template"> 
           <Setter.Value> 
            <ControlTemplate TargetType="ToggleButton"> 
             <Border Width="100" Height="30" BorderThickness="2" Background="Transparent" BorderBrush="#38abcf"> 
              <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
             </Border> 
             <ControlTemplate.Triggers> 
              <Trigger Property="IsMouseOver" Value="True"> 
               <Setter Property="BorderBrush" Value="Red" /> 
              </Trigger> 
             </ControlTemplate.Triggers> 
            </ControlTemplate> 
           </Setter.Value> 
          </Setter> 
          <Style.Triggers> 
           <Trigger Property="IsChecked" Value="True"> 
            <Setter Property="Content" Value="Loops ON"/> 
           </Trigger> 
           <Trigger Property="IsMouseOver" Value="True"> 
            <Setter Property="BorderBrush" Value="Red" /> 
           </Trigger> 
          </Style.Triggers> 
         </Style> 
        </ToggleButton.Style> 
    

回答

1

覆盖默认模板

 <ToggleButton> 
       <ToggleButton.Style> 
        <Style TargetType="{x:Type ToggleButton}"> 
         <Setter Property="Content" Value="OFF"/> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate TargetType="ToggleButton"> 
            <Border Name="Border" Width="100" Height="30" BorderThickness="2" Background="Transparent" 
         BorderBrush="#38abcf"> 
             <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/> 
            </Border> 
            <ControlTemplate.Triggers> 
             <Trigger Property="IsMouseOver" Value="True">          
              <Setter Property="BorderBrush" Value="Red" TargetName="Border" />  
             </Trigger> 
            </ControlTemplate.Triggers> 
           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 
         <Style.Triggers> 
          <Trigger Property="IsChecked" Value="True"> 
           <Setter Property="Content" Value="ON"/> 
          </Trigger> 
         </Style.Triggers> 
        </Style> 
       </ToggleButton.Style> 
      </ToggleButton> 
+0

BTW我添加另一个触发IsMouseOver(见我的更新),为什么这不工作? –

+0

模板已被覆盖,因此您需要使用ControlTemplate.Triggers。我更新了。 – Maximus

+0

这仍然不会改变边框颜色,请参阅我的更新。 –