WPF---style样式

先通俗讲一下样式:

  • 样式主要是用来对控件进行修改,使得控件表现出特定的表现状态。比如,普通的Button按钮,很简陋。通过样式可以使得按钮在创建的时候,就具有一些特别的样子(前景色,边框颜色,高度,宽度等等)。这种情况适合用于在前段需要构建大量控件时,避免了重复工作(而且在前端.xaml文件中没有for循环)。

Style最重要的两个元素是Setter和Trigger:

  • Setter类:用来设置控件的静态外观风格。Setter类的Property属性用来指明你想为目标的哪个属性赋值;Setter类的Value属性则是你提供的属性值。
  • Trigger类:用来设置控件的行为风格。 Trigger类是触发器,即当某些条件满足时会触发一个行为。Trigger类的Property是Trigger关注的属性名称;Trigger类的Setters属性(注意带s),此属性值是一组Setter,一旦触发条件被满足,这组Setter的“属性—值”就会被应用,触发条件不在满足后,各属性会被还原。

Style样式的使用示例1:

<Window x:Class="StyleTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:StyleTest"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">

    <Window.Resources>
        <Style x:Key="BtnStyle" TargetType="Button">
            <Style.Setters>
                <Setter Property="Foreground" Value="Purple"/>
                <Setter Property="FontFamily" Value="宋体"/>
                <Setter Property="BorderThickness" Value="1"/>
                <Setter Property="Height" Value="30"/>
            </Style.Setters>
        </Style>
    </Window.Resources>
     
    <Grid >
        <StackPanel Orientation="Vertical" HorizontalAlignment="Center">
            <Button Content="普通按钮" Margin="0,100,0,0"/>
            <Button Content="使用样式后的按钮" Style="{StaticResource BtnStyle}" Margin="0,30,0,0" />
        </StackPanel>
    </Grid>
</Window>

运行结果:

可以看到默认生成的按钮,以及使用了样式后的按钮。
在这里插入图片描述
==注意:==因为Style的内容属性是Setters,所以可以直接在Style标签的内容区域写Setter,即如下图:
在这里插入图片描述

Style样式的使用示例2:

下面的例子中包含一个针对CheckBox的Style,当CheckBox的IsChecked属性为true时候前景色和字体会改变。代码如下:

运行结果:

在这里插入图片描述
注意:Trigger不是Style的内容,所以Style.Trigger 这层标签不能省略。但是Trigger的Setters 属性是Trigger的内容属性,所以Trigger.Setter这层标签是可以省略的。因此代码可以简化:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值