是否可以从我从Style类中获取的SetterBase集合中提取属性名称?
例如,在下面的代码中:
Style style = Application.Current.Resources[ModifierNameMinimalNoPopStyle] as Style;
descriptionText.Style = style;
var setterCollection = style.Setters;
我想提取Style所具有的“FontFamily”并在我的代码中使用它。
有没有办法做到这一点?
答案 0 :(得分:0)
以下是我根据您的回复做的事情,以避免不必要的链接。将该字体变为实际的StaticResource
,将其填入您的ResourceDictionary,如;
<FontFamily x:Key="SpecialFont">Segoe UI</FontFamily>
然后它随处可用,如果您需要更改它,那么您只有一个位置可以通过继承传播到每个实例的位置,例如更改您的Setter;
<Setter Property="FontFamily" Value="Segoe UI" />
到
<Setter Property="FontFamily" Value="{StaticResource SpecialFont}" />
现在,如果您在其他地方需要它,您可以从同一个静态位置实际获取它作为StaticResource,例如;
<Button FontFamily="{StaticResource SpecialFont}" Content="I'm Segoe UI Font"/>
或代码隐藏;
this.btn.SetResourceReference(FontFamilyProperty, "SpecialFont");
希望这有帮助。