Получить стиль элемента управления {StaticResource {x: Type TextBlock}} в коде позади - PullRequest
5 голосов
/ 10 сентября 2009

Я хочу получить значение по умолчанию 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 Ответ

9 голосов
/ 11 сентября 2009

Расширение разметки StaticResource , по существу, пытается найти ресурс для определяемого ключа. Если стиль по умолчанию для типа TextBlock можно получить с помощью: {StaticResource {x:Type TextBlock}}, вы сможете получить его в коде с помощью:

var defaultTextBlockStyle = FindResource(typeof(TextBlock));

Конечно, это нужно вызывать в контексте, в котором определены методы FindResource. Я использовал его в своем основном классе Window, и он работает.

Надеюсь, это поможет.

...