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

    一些疑点将会在后期补充

  • 相关阅读:
    在一天的24小时之中,时钟的时针、分针和秒针完整重合在一路的时辰有几回?都分辨是什么时光?你如何算出来的?
    12个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球。13个呢?(注意此题并未说明那个球的重量是轻是重,所以需要仔细考虑)
    Bootstrap4默认样式不对胃口?教你使用NPM+Webpack+SASS来定制
    Java 内存模型和 JVM 内存结构真不是一回事
    还在为垂直居中苦恼?CSS 布局利器 flexbox 轻轻松松帮你搞定
    这 3 个 Set 集合的实现有点简单,那来做个总结吧
    TreeMap 还能排序?分析下源码就明白了
    红黑树这个数据结构,让你又爱又恨?看了这篇,妥妥的征服它
    模拟实现 Tomcat 的核心模块:NIO,HTTP,容器和集群
    「福利」Java Swing 编写的可视化算法工程,包含树、图和排序
  • 原文地址:https://www.cnblogs.com/SunsetAzure/p/6170223.html
Copyright © 2011-2022 走看看