zoukankan      html  css  js  c++  java
  • WPF ControlTemplate

    ButtonStyle.xaml

    View Code
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <SolidColorBrush  x:Key="whiteSolidBrush" Color="White"/>
        <SolidColorBrush  x:Key="blackSolidBrush" Color="Black"/>
    
        <LinearGradientBrush  x:Key="blackToWhiteLGBrush">
            <GradientStop Offset="0" Color="Black"/>
            <GradientStop Offset="1" Color="White"/>
        </LinearGradientBrush>
    
        <RadialGradientBrush x:Key="blackToWhiteRGBrush">
            <GradientStop Offset="0" Color="Black"/>
            <GradientStop Offset="1" Color="White"/>
        </RadialGradientBrush>
    
        <ControlTemplate x:Key="buttonTemplate" TargetType="Button">
           <Grid>
                <VisualStateManager.VisualStateGroups>
                    <VisualStateGroup x:Name="CommonStates">
                        <VisualState Name="Normal"/>
                        <VisualState Name="MouseOver"/>
                        <VisualState Name="Pressed">
                            <Storyboard>
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="border"
                                                                Storyboard.TargetProperty="Background">
                                    <DiscreteObjectKeyFrame KeyTime="0:0:0"
                                                            Value="{StaticResource whiteSolidBrush}"/>
                                </ObjectAnimationUsingKeyFrames>
                                <ObjectAnimationUsingKeyFrames Storyboard.TargetName="contentControl"
                                                                Storyboard.TargetProperty="Foreground">
                                    <DiscreteObjectKeyFrame KeyTime="0:0:0"                
                                                            Value="{StaticResource blackSolidBrush}"/>
                                </ObjectAnimationUsingKeyFrames>
                            </Storyboard>
                        </VisualState>
                        <VisualState Name="Disabled">
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetName="disabRectangle"
                                                 Storyboard.TargetProperty="Opacity"
                                                 To="0.6" Duration="0:0:0"/>
                            </Storyboard>
                        </VisualState>
                    </VisualStateGroup>
                </VisualStateManager.VisualStateGroups>
               
               <Border Name="border"
                       BorderBrush="{TemplateBinding BorderBrush}"
                       Background="{TemplateBinding Background}"
                       BorderThickness="{TemplateBinding BorderThickness}"
                       CornerRadius="5">
                   <ContentControl Name="contentControl"
                                   Content="{TemplateBinding Content}"
                                   ContentTemplate="{TemplateBinding ContentTemplate}"
                                   Margin="{TemplateBinding Padding}"
                                   HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                                   VerticalAlignment="{TemplateBinding VerticalAlignment}"/>
               </Border>
                <Rectangle Name="disabRectangle"
                           Fill="Gainsboro"
                           Opacity="0"/> 
            </Grid>
       </ControlTemplate>
        
        <Style x:Key="buttonStyle" TargetType="Button">
            <Setter Property="BorderBrush" Value="White"/>
            <Setter Property="BorderThickness" Value="5"/>
            <Setter Property="BorderBrush" Value="Black"/>
            <Setter Property="Template" Value="{StaticResource buttonTemplate}"/>
        </Style>
    </ResourceDictionary>

    使用

    <Button x:Name="bt" Content="123" Style="{StaticResource buttonStyle}" IsEnabled="False"/>
  • 相关阅读:
    基于ABP落地领域驱动设计-04.领域服务和应用服务的最佳实践和原则
    基于ABP落地领域驱动设计-03.仓储和规约最佳实践和原则
    基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则
    基于ABP落地领域驱动设计-01.全景图
    Es6-find&map&filter&reduce
    vue之监听事件
    list map互相转换
    springcloud 返回实体类忽略属性
    Apache NetBeans IDE 12.3 双击无反应怪事
    前端--- 前端调试经验总结
  • 原文地址:https://www.cnblogs.com/easy5weikai/p/3075755.html
Copyright © 2011-2022 走看看