zoukankan      html  css  js  c++  java
  • Checkbox 模板和样式

     1     <Style TargetType="{x:Type CheckBox}">
     2         <Setter Property="FontFamily" Value="Microsoft YaHei" />
     3         <Setter Property="FontSize" Value="12" />
     4         <Setter Property="FocusVisualStyle" Value="{x:Null}" />
     5         <Setter Property="Background" Value="{DynamicResource ButtonBackground}" />
     6         <Setter Property="BorderBrush" Value="{DynamicResource ButtonBorder}" />
     7         <Setter Property="Foreground" Value="{DynamicResource WindowText}" />
     8         <Setter Property="BorderThickness" Value="1" />
     9         <Setter Property="Template">
    10             <Setter.Value>
    11                 <ControlTemplate TargetType="{x:Type CheckBox}">
    12                     <Grid x:Name="LayoutRoot" Margin="{TemplateBinding Padding}">
    13                         <Grid.ColumnDefinitions>
    14                             <ColumnDefinition Width="Auto" />
    15                             <ColumnDefinition Width="*" />
    16                         </Grid.ColumnDefinitions>
    17                         <Border x:Name="CheckBorder" Width="16" Height="16" Margin="0,1,4,0" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
    18                             <Grid>
    19                                 <Path x:Name="CheckMark"
    20                                       Width="10" Height="10"
    21                                       Margin="2"
    22                                       Data="F1M15,21L22,28 32.9999,14.0001 35.9999,17.0001 22,34 12.0001,24 15,21z"
    23                                       Fill="{TemplateBinding Foreground}"
    24                                       Stretch="Fill" Visibility="Collapsed" />
    25                                 <Rectangle x:Name="Indeterminate" Width="8" Height="8" Margin="4" Fill="{TemplateBinding Foreground}" Visibility="Hidden" />
    26                             </Grid>
    27                         </Border>
    28                         <ContentPresenter Grid.Column="1"
    29                                           Margin="{TemplateBinding Padding}"
    30                                           HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
    31                                           VerticalAlignment="Center"
    32                                           Content="{TemplateBinding Content}"
    33                                           ContentStringFormat="{TemplateBinding ContentStringFormat}"
    34                                           ContentTemplate="{TemplateBinding ContentTemplate}"
    35                                           Focusable="False" RecognizesAccessKey="True"
    36                                           SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
    37                     </Grid>
    38                     <ControlTemplate.Triggers>
    39                         <MultiDataTrigger>
    40                             <MultiDataTrigger.Conditions>
    41                                 <Condition Binding="{Binding IsThreeState, RelativeSource={RelativeSource Self}}" Value="True" />
    42                                 <Condition Binding="{Binding IsChecked, RelativeSource={RelativeSource Self}}" Value="True" />
    43                             </MultiDataTrigger.Conditions>
    44                             <Setter Property="Foreground" Value="{DynamicResource ButtonTextDisabled}" />
    45                             <Setter TargetName="CheckMark" Property="Visibility" Value="Collapsed" />
    46                             <Setter TargetName="Indeterminate" Property="Visibility" Value="Visible" />
    47                         </MultiDataTrigger>
    48                         <Trigger Property="IsEnabled" Value="False">
    49                             <Setter Property="Foreground" Value="{DynamicResource ButtonTextDisabled}" />
    50                         </Trigger>
    51                         <Trigger Property="IsChecked" Value="True">
    52                             <Setter TargetName="CheckMark" Property="Visibility" Value="Visible" />
    53                             <Setter TargetName="Indeterminate" Property="Visibility" Value="Collapsed" />
    54                         </Trigger>
    55                         <Trigger Property="IsMouseOver" Value="True">
    56                             <Setter TargetName="CheckBorder" Property="Background" Value="{DynamicResource ButtonBackgroundHover}" />
    57                             <Setter TargetName="CheckBorder" Property="BorderBrush" Value="{DynamicResource ButtonBorderHover}" />
    58                             <Setter TargetName="CheckMark" Property="Fill" Value="{DynamicResource ButtonTextHover}" />
    59                         </Trigger>
    60                         <Trigger Property="IsPressed" Value="True">
    61                             <Setter TargetName="CheckBorder" Property="Background" Value="{DynamicResource ButtonBackgroundPressed}" />
    62                             <Setter TargetName="CheckBorder" Property="BorderBrush" Value="{DynamicResource ButtonBorderPressed}" />
    63                             <Setter TargetName="CheckMark" Property="Fill" Value="{DynamicResource ButtonTextPressed}" />
    64                         </Trigger>
    65                         <Trigger Property="IsFocused" Value="True">
    66                             <Setter TargetName="CheckBorder" Property="BorderBrush" Value="{DynamicResource Accent}" />
    67                         </Trigger>
    68                     </ControlTemplate.Triggers>
    69                 </ControlTemplate>
    70             </Setter.Value>
    71         </Setter>
    72     </Style>

     

    应用

    1 <CheckBox Content="checkbox"/>

     

    引用:

    https://msdn.microsoft.com/zh-cn/library/ms752319(v=vs.110).aspx

    一些疑点将会在后期补充

  • 相关阅读:
    Using Spark's "Hadoop Free" Build
    关于Consul
    关于Eureka
    关于Gateway
    关于Ribbon
    关于Hystrix
    关于Feign
    关于SpringBoot
    关于架构
    关于敏捷开发Scrum(一)
  • 原文地址:https://www.cnblogs.com/SunsetAzure/p/6170223.html
Copyright © 2011-2022 走看看