从SetterBase中提取Setter属性名称?

时间:2016-03-22 14:14:09

标签: xaml styles winrt-xaml setter

是否可以从我从Style类中获取的SetterBase集合中提取属性名称?

例如,在下面的代码中:

            Style style = Application.Current.Resources[ModifierNameMinimalNoPopStyle] as Style;
            descriptionText.Style = style;
            var setterCollection = style.Setters;

我想提取Style所具有的“FontFamily”并在我的代码中使用它。

有没有办法做到这一点?

1 个答案:

答案 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");

希望这有帮助。