wpf - 获取控件的样式 {StaticResource {x :Type TextBlock}} in code behind

标签 wpf styles default code-behind

我要抢默认Style对于 TextBlock在后面的代码中没有添加自定义默认值 TextBlock StyleXAML 中的资源.

我有一个这样的方法:

public TextBlock DrawTextBlockAtPoint(string text, Style style)
{
    //...
}

我想提供一个只使用常规 TextBlock 的覆盖Style :
public TextBlock DrawTextBlockAtPoint(string text)
{
   var style = GetDefaultStyleForProperty(TextBlock.StyleProperty);
   DrawTextBlockAtPoint(text, style)
}

有没有办法做到这一点?

最佳答案

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

var defaultTextBlockStyle = FindResource(typeof(TextBlock));

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

希望这可以帮助。

关于wpf - 获取控件的样式 {StaticResource {x :Type TextBlock}} in code behind,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1406982/

相关文章:

.net - 如何在自定义嵌套用户控件中引用另一个 XAML 元素?

c# - 如何在 WPF C# 中更改 slider 上刻度的设计(刻度的厚度、刻度的形状等...)

jasper-reports - JasperReports 中的外部样式

c++ - 在后面的 C++ 代码中设置控件样式

forms - 使用变量定义表单输入中的默认值

Python:如果默认值设置为抛出异常的函数,Dict get 方法总是抛出异常

javascript - 为什么 `Export Default Const`无效?

wpf - 在一个项目中使用 MEF 和 Prism (CAL) 是否可能(且合理)?

android - 操作栏样式问题

c# - 使用 WPF 密码绑定(bind)在类型中找不到可附加属性