WPF样式

来源:互联网 发布:查看数据库ip地址 编辑:程序博客网 时间:2024/05/01 12:02

样式

由System.Windows.Style类表示。

<StackPanel>    <StackPanel.Resources>        <Style x:Key="ButtonStyle">            <Setter Property="Button.FontSize" Value="22"/>            <Setter Property="Button.Background" Value="Purple"/>            <Setter Property="Button.RenderTransformOrigin" Value=".5,.5"/>        </Style>        <!-- 继承ButtonStyle -->        <Style x:Key="ButtonStyle2" BasedOn="{StaticResource ButtonStyle}">            <Setter Property="Button.FontWeight" Value="Bold"/>        </Style>    </StackPanel.Resources>            <Button Style="{StaticResource ButtonStyle}">1</Button>    <Button Style="{StaticResource ButtonStyle2}">2</Button></StackPanel>

共享Style

<StackPanel><StackPanel.Resources>    <Style x:Key="ButtonStyle">        <Setter Property="Control.FontSize" Value="22"/>        <Setter Property="Control.Background" Value="Purple"/>        <Setter Property="Control.RenderTransformOrigin" Value=".5,.5"/>        <!-- 只对存在的属性进行设置,不存在则忽略 -->        <Setter Property="Button.ClickMode" Value="Press"/>    </Style>    <!-- 继承ButtonStyle -->    <Style x:Key="ButtonStyle2" BasedOn="{StaticResource ButtonStyle}">        <Setter Property="Control.FontWeight" Value="Bold"/>    </Style></StackPanel.Resources>        <Button Style="{StaticResource ButtonStyle}">1</Button><Button Style="{StaticResource ButtonStyle2}">2</Button><TextBox Style="{StaticResource ButtonStyle2}" >TextBox</TextBox>

限制Style使用

让Style应用到一个特定类型上,设置TargetType属性。

<StackPanel.Resources>    <Style x:Key="LblStyle" TargetType="{x:Type Label}">        <Setter Property="Background" Value="Olive"/>    </Style></StackPanel.Resources><!-- 用到非Label对象上将报错 --><Label Style="{StaticResource LblStyle}">Label</Label>

创建隐式Style

设置Style的TargetType还有另一功能,忽略key属性,该Style隐式应用到所有目标类型元素。

其实有一隐式设置的键名,即为TargetType,因此同一TargetType只可有一个隐式Style,否则报错。

<StackPanel.Resources>          <!-- 不显示添加key -->    <Style TargetType="{x:Type Label}">        <Setter Property="Background" Value="Olive"/>    </Style></StackPanel.Resources><Label>Label</Label>
原创粉丝点击