WPF的Style的TargetType不同写法的异同(转载)

WPF样式详解
本文深入解析了WPF中样式(Style)的多种写法及其应用,包括如何通过不同的TargetType属性值来设定样式作用范围,以及如何利用x:Key属性进行样式的显式引用。文章详细对比了直接设置TargetType与使用命名空间引用的区别,以及如何在资源部分定义样式。

WPF的Style的TargetType不同写法的异同

1

2

3

4

5

6

<Style TargetType="TextBlock">

<Setter Property="FontSize" Value="28"/>

</Style>

<Style TargetType="{x:Type TextBlock}">

<Setter Property="FontSize" Value="28"/>

</Style>

完全没区别~~前者用了默认的隐式的方式,后者用了一个显式的命名空间引用。但其实是一样的,都是自动给TextBlock应用样式

1

2

3

<Style x:Key="{x:Type TextBlock}" TargetType="TextBlock">

   <Setter Property="FontSize" Value="28"/>

</Style>

 这种写法和上面的也完全没有区别。将 TargetType 属性设置为 TextBlock 而不为样式分配 x:Key,样式就会应用于所有 TextBlock 元素。这种情况下,x:Key 隐式设置为 {x:Type TextBlock}。 

<Style x:Key="cc" TargetType="{x:Type TextBlock}">
      <Setter Property="FontSize" Value="28"/>
</Style>

如果将 x:Key 值显式设置为 {x:Type TextBlock} 之外的任何值,如上面设置为 x:key="cc",Style 就不会自动应用于所有 TextBlock 元素。此时,必须通过使用 x:Key 值,将样式显式应用于 TextBlock 元素。

<Style x:Key="aa">
  <Setter Property="Control.FontSize" Value="28"/>
</Style>

样式位于资源部分,并且未设置样式的 TargetType 属性,则必须提供 x:Key。

除了提供 x:Key 的默认值之外,TargetType 属性还指定要应用 setter 属性的类型。如果未指定 TargetType,则必须通过语法 Property="ClassName.Property",用类名限定 Setter 对象的属性。例如,必须将 Property 设置为 "TextBlock.FontSize" 或 "Control.FontSize",而不要设置 Property="FontSize"。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值