簡體   English   中英

恢復動態資源值

[英]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 值優先級計算的

DP值優先級列表中有3個來源:

  • 當地價值5

  • 樣式設置器值18

  • FontSize DP 的默認值

ClearValue()刪除本地值,導致重新計算,下一個值由 Style Setter 提供,它在當前來源中具有最高優先級

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM