在后面的代码中获取控件的样式{StaticResource {x:Type TextBlock}}

时间:2009-09-10 18:39:41

标签: wpf styles default code-behind

我想在后面的代码中抓取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)
}

有没有这样做?

1 个答案:

答案 0 :(得分:9)

StaticResource标记扩展本质上试图找到定义键的资源。如果可以使用以下代码检索TextBlock类型的默认样式:{StaticResource {x:Type TextBlock}}您应该能够使用以下代码获取它:

var defaultTextBlockStyle = FindResource(typeof(TextBlock));

当然,这需要在定义FindResource方法的上下文中调用。我在我的主要Window类中使用它并且它可以工作。

希望这有帮助。