Wpf 在代码隐藏中获取控件{StaticResource{x:Type TextBlock}}的样式

Wpf 在代码隐藏中获取控件{StaticResource{x:Type TextBlock}}的样式,wpf,styles,default,code-behind,Wpf,Styles,Default,Code Behind,我想为代码隐藏中的TextBlock获取默认Style,而不必向XAML中的资源添加自定义默认TextBlockStyle 我有一个这样的方法: public TextBlock DrawTextBlockAtPoint(string text, Style style) { //... } 我想提供一个只使用常规TextBlock样式的覆盖: public TextBlock DrawTextBlockAtPoint(string text) { var style = Get

我想为代码隐藏中的
TextBlock
获取默认
Style
,而不必向
XAML
中的资源添加自定义默认
TextBlock
Style

我有一个这样的方法:

public TextBlock DrawTextBlockAtPoint(string text, Style style)
{
    //...
}
我想提供一个只使用常规
TextBlock
样式的覆盖:

public TextBlock DrawTextBlockAtPoint(string text)
{
   var style = GetDefaultStyleForProperty(TextBlock.StyleProperty);
   DrawTextBlockAtPoint(text, style)
}
还有其他方法可以这样做吗?

标记扩展实际上是尝试为defines键查找资源。如果可以使用以下方法检索TextBlock类型的默认样式:
{StaticResource{x:type TextBlock}
,则应该可以使用以下方法在代码中获取它:

var defaultTextBlockStyle = FindResource(typeof(TextBlock));
当然,这需要在定义FindResource方法的上下文中调用。我在我的主窗口类中使用了它,它可以工作


希望这有帮助。

这帮了大忙:
typeof
并使用声明样式的容器(我的案例是
StackPanel
,之前我在
窗口上使用了
FindResource
,但它不起作用)。