WPF

2011-05-17 17 views
6

'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 enter image description here enter image description here . Denetim Şablonu'nu kullanmanız mı gerekiyor?

cevap

4

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>