2011-05-17 22 views

Respuesta

4

Debe modificar la plantilla o el estilo de control para cambiar la apariencia del control existente disponible. Echa un vistazo a esta muestra que es similar a tu requerimiento. Lo que hice fue cambiar Chrome (estilo predeterminado de Windows) y crear mi propio estilo con Border y presentador de contenido. Entonces he creado los disparadores para el estilo. Para la visualización, en el evento mouseover e ischecked estoy cambiando el color de fondo del borde.

<Window.Resources> 
    <Style x:Key="ToggleButtonStyle1" TargetType="{x:Type ToggleButton}"> 
     <Setter Property="BorderThickness" Value="1"/> 
     <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/> 
     <Setter Property="HorizontalContentAlignment" Value="Center"/> 
     <Setter Property="VerticalContentAlignment" Value="Center"/> 
     <Setter Property="Padding" Value="1"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ToggleButton}"> 
        <Border x:Name="border"> 
         <ContentPresenter 
         SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
         RecognizesAccessKey="True" TextElement.Foreground="White" HorizontalAlignment="Center"/> 
        </Border> 
        <ControlTemplate.Triggers> 
         <Trigger Property="IsKeyboardFocused" Value="true"/> 
         <Trigger Property="IsChecked" Value="true"> 
          <Setter Property="Background" TargetName="border" Value="#FF6C6C6C"/> 
          <Setter Property="CornerRadius" TargetName="border" Value="5"/> 
         </Trigger> 
         <Trigger Property="IsMouseOver" Value="True"> 
          <Setter Property="Background" TargetName="border" Value="#FF282828"/> 
         </Trigger> 
         <Trigger Property="IsEnabled" Value="false"> 
          <Setter Property="Foreground" Value="#ADADAD"/> 
         </Trigger> 
        </ControlTemplate.Triggers> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</Window.Resources> 

<Grid x:Name="LayoutRoot"> 
    <ToggleButton HorizontalAlignment="Left" Margin="136,59,0,0" Style="{DynamicResource ToggleButtonStyle1}" VerticalAlignment="Top" Width="27" Height="24" Content="-" FontSize="21.333" FontWeight="Bold" HorizontalContentAlignment="Center" Padding="0" VerticalContentAlignment="Center" IsThreeState="True"/> 
</Grid> 

Cuestiones relacionadas