恢复动态资源值
Restore dynamic resource value
我有一个带有样式的文本块 tb。
<TextBlock x:Name="tb" Style="{DynamicResource H1Style}" Text="Test"/>
<Style TargetType="{x:Type TextBlock}" x:Key= "H1Style">
<Setter Property="FontSize" Value="18" />
<Setter Property="FontWeight" Value="Light"/>
</Style>
那我换码
tb.FontSize = 5;
如何恢复tb的H1Style样式?
我尝试设置 SetResourceReference,但 FontSize 仍然是 5 而不是 18。
tb.SetResourceReference(Control.StyleProperty, "H1Style");
这一行 - tb.FontSize = 5;
- 将 本地值 分配给 TextBlock 的 FontSize 属性。有一种方法可以撤消分配 - ClearValue() 方法:
tb.ClearValue(TextBlock.FontSizeProperty);
FontSize 是一个依赖项 属性,它的值是根据 DP value precedence
计算的
DP 值优先列表中有 3 个来源:
局部值5
样式Setter值18
默认值 FontSize
DP
ClearValue()
删除本地值,导致重新计算,下一个值由 Style Setter 提供,它在当前来源
中具有最高优先级
我有一个带有样式的文本块 tb。
<TextBlock x:Name="tb" Style="{DynamicResource H1Style}" Text="Test"/>
<Style TargetType="{x:Type TextBlock}" x:Key= "H1Style">
<Setter Property="FontSize" Value="18" />
<Setter Property="FontWeight" Value="Light"/>
</Style>
那我换码
tb.FontSize = 5;
如何恢复tb的H1Style样式?
我尝试设置 SetResourceReference,但 FontSize 仍然是 5 而不是 18。
tb.SetResourceReference(Control.StyleProperty, "H1Style");
这一行 - tb.FontSize = 5;
- 将 本地值 分配给 TextBlock 的 FontSize 属性。有一种方法可以撤消分配 - ClearValue() 方法:
tb.ClearValue(TextBlock.FontSizeProperty);
FontSize 是一个依赖项 属性,它的值是根据 DP value precedence
计算的DP 值优先列表中有 3 个来源:
局部值
5
样式Setter值
18
默认值
FontSize
DP
ClearValue()
删除本地值,导致重新计算,下一个值由 Style Setter 提供,它在当前来源