【问题标题】:Extract Setter Property name from SetterBase?从 SetterBase 中提取 Setter 属性名称?
【发布时间】:2016-03-22 14:14:09
【问题描述】:

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

例如,在下面的代码中:

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

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

有什么办法吗?

【问题讨论】:

  • 如果样式控件存在于同一上下文中,您可以直接绑定到该属性。除了我很好奇。样式是否具有静态 FontFamily 或者它是否绑定到某些东西或静态资源?我认为通常不需要动态抓取它。
  • 谢谢克里斯!它是一个静态资源。 setter 是这样的:

标签: xaml styles winrt-xaml setter


【解决方案1】:

根据您的回复,我将采取以下措施以避免不必要的链接。采用该字体并将其放入您的 ResourceDictionary 中,使其成为实际的StaticResource

<FontFamily x:Key="SpecialFont">Segoe UI</FontFamily>

然后它随处可用,如果您需要更改它,那么您只有一个地方可以通过继承传播到每个实例,例如更改您的 Setter;

<Setter Property="FontFamily" Value="Segoe UI" />

到;

<Setter Property="FontFamily" Value="{StaticResource SpecialFont}" />

现在,如果您在其他任何地方需要它,您实际上可以从同一静态位置将其作为静态资源抓取,例如;

<Button FontFamily="{StaticResource SpecialFont}" Content="I'm Segoe UI Font"/>

或后面的代码;

this.btn.SetResourceReference(FontFamilyProperty, "SpecialFont");

希望这会有所帮助。

【讨论】:

  • 谢谢克里斯!我会试试看。
  • 嗨,克里斯,是的,为我工作。抱歉很忙。谢谢!
猜你喜欢
  • 2010-11-05
  • 2011-05-20
  • 2021-11-19
  • 2018-11-16
  • 2021-12-04
  • 2014-08-17
  • 2012-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多