'deki geçiş değiştirme davranışını değiştirme WPF'de yeniim.WPF
Geçiş yumuşatma davranışını değiştirmenin yolu. Siyah çuval ve sınırsız . Denetim Şablonu'nu kullanmanız mı gerekiyor?
'deki geçiş değiştirme davranışını değiştirme WPF'de yeniim.WPF
Geçiş yumuşatma davranışını değiştirmenin yolu. Siyah çuval ve sınırsız . Denetim Şablonu'nu kullanmanız mı gerekiyor?
Mevcut Kontrol'ün görünümünü ve görünümünü değiştirmek için Kontrol Şablonu veya Stilini değiştirmeniz gerekir. İhtiyacınıza benzer olan bu örneğe bir göz atın. Yaptığım şey, Chrome'u (varsayılan pencere stili) değiştirdim ve Kenarlık ve içerik sunucusu ile kendi stilimi oluşturdum. Sonra stil için Tetikleyicileri yarattım. Görselleştirme için, mouseover ve ischecked olayında Sınırın arka plan rengini değiştiriyorum.
<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>
Evet, ToggleButton
görünümünü değiştirmek için ControlTemplate
kullanmak istiyorsunuz. Bu yazıda yanı sıra ToggleButton
için sayfasına bir göz atın:
Customizing the Appearance of an Existing Control by Creating a ControlTemplate
başlamak için.