Soy nuevo en WPF.Cambiar el comportamiento personalizado de togglebutton en WPF
Qué manera de cambiar el comportamiento de un togglebutton. a
con borde negro y sin borde. ¿Es necesario usar la plantilla de control?
Soy nuevo en WPF.Cambiar el comportamiento personalizado de togglebutton en WPF
Qué manera de cambiar el comportamiento de un togglebutton. a
con borde negro y sin borde. ¿Es necesario usar la plantilla de control?
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>
Sí, quiere usar un ControlTemplate
para ver cómo se ve el ToggleButton
. Echar un vistazo a la página de la ToggleButton
así como este artículo:
Customizing the Appearance of an Existing Control by Creating a ControlTemplate
para que pueda empezar.