• WPF初学——自定义样式


    在WPF开发界面的过程中,经常会遇到多个相同种类的控件样式也是统一的,但是要一个一个地去设置,即使是复制粘贴都嫌累,所以翻了些书,网上度娘了一些材料,发现WPF有很容易的方式解决我的纠结,那就是——自定义样式。

    我使用的比较多的是在Grid里使用Grid.Resource标签将样式作为静态资源统一管理起来,然后在需要的地方使用。

     1 <Grid.Resources>
     2             <Style x:Key="Style_Label" TargetType="Label">
     3                 <Setter Property="HorizontalAlignment" Value="Left"/>
     4                 <Setter Property="VerticalContentAlignment" Value="Center"/>
     5             </Style>
     6 
     7             <Style x:Key="Style_Label_Bold" TargetType="Label">
     8                 <Setter Property="HorizontalAlignment" Value="Left"/>
     9                 <Setter Property="VerticalContentAlignment" Value="Center"/>
    10                 <Setter Property="FontWeight" Value="Bold"/>
    11             </Style>
    12 
    13             <Style x:Key="Style_Button" TargetType="Button">
    14                 <Setter Property="Height" Value="40"/>
    15                 <Setter Property="Width" Value="80"/>
    16                 <Setter Property="HorizontalAlignment" Value="Left"/>
    17                 <Setter Property="Background" Value="#FF00AAFF"/>
    18                 <Setter Property="Foreground" Value="White"/>
    19                 <Setter Property="BorderBrush" Value="{x:Null}"/>
    20                 <Setter Property="Focusable" Value="False"/>
    21             </Style>
    22 
    23             <Style x:Key="Style_TextBox" TargetType="TextBox">
    24                 <Setter Property="Height" Value="30"/>
    25                 <Setter Property="HorizontalAlignment" Value="Left"/>
    26                 <Setter Property="VerticalContentAlignment" Value="Center"/>
    27             </Style>
    28 
    29             <VisualBrush x:Key="HelpBrush" TileMode="None" Opacity="0.3" Stretch="None" AlignmentX="Left">
    30                 <VisualBrush.Visual>
    31                     <TextBlock FontStyle="Italic" Text="必填项,免单或修改价格原因"/>
    32                 </VisualBrush.Visual>
    33             </VisualBrush>
    34             
    35             <Style x:Key="Style_TextBox_Tooltip" TargetType="TextBox">
    36                 <Setter Property="Height" Value="30"/>
    37                 <Setter Property="HorizontalAlignment" Value="Left"/>
    38                 <Setter Property="VerticalContentAlignment" Value="Center"/>
    39                 <Style.Triggers>
    40                     <Trigger Property="Text" Value="{x:Null}">
    41                         <Setter Property="Background" Value="{StaticResource HelpBrush}"/>
    42                     </Trigger>
    43                     <Trigger Property="Text" Value="">
    44                         <Setter Property="Background" Value="{StaticResource HelpBrush}"/>
    45                     </Trigger>
    46                 </Style.Triggers>
    47             </Style>
    48         </Grid.Resources>

    现在遇到的问题是,我的Button的样式,并不能真的去掉外边框,需要更深一步才行。

    当然还有TextBox的空内容提示,还在研究,不了解visualBrush的用法,算是移山填海地手法从巨人们的肩膀上得来的,多实践才会理解代码的含义。

    说实话,Trigger(触发器)要比事件更方便一些,发现了比winform好用的地方了,果然WPF是革新的技术啊!

  • 相关阅读:
    jquery $.each遍历json数组方法
    JQuery插件编写
    创建JAVASCRIPT对象3种方法
    微信开发流程
    有关索引那点事
    获取数据库内所有的表和表内字段的信息
    asp.net MVC4 异步文件上传
    QT学习:01 工程文件详解
    QT学习:00 介绍
    Linux 系统编程 学习 总结
  • 原文地址:https://www.cnblogs.com/LeonWong/p/4867761.html
Copyright © 2020-2023  润新知