我想在后面的代码中抓取Style
的默认TextBlock
,而不必向TextBlock
中的资源添加自定义默认Style
XAML
。
我有一个这样的方法:
public TextBlock DrawTextBlockAtPoint(string text, Style style)
{
//...
}
我想提供仅使用常规TextBlock
Style
的覆盖:
public TextBlock DrawTextBlockAtPoint(string text)
{
var style = GetDefaultStyleForProperty(TextBlock.StyleProperty);
DrawTextBlockAtPoint(text, style)
}
有没有这样做?
答案 0 :(得分:9)
StaticResource标记扩展本质上试图找到定义键的资源。如果可以使用以下代码检索TextBlock类型的默认样式:{StaticResource {x:Type TextBlock}}
您应该能够使用以下代码获取它:
var defaultTextBlockStyle = FindResource(typeof(TextBlock));
当然,这需要在定义FindResource方法的上下文中调用。我在我的主要Window类中使用它并且它可以工作。
希望这有帮助。