如何使用xaml资源字典中定义的样式?

时间:2011-08-24 17:36:13

标签: wpf

我有一个动态创建IMultiValueConverter控件的TextBlock。问题是它没有样式。

如何告诉我的新TextBlock使用我的XAML资源字典中定义的样式?

2 个答案:

答案 0 :(得分:1)

我之前从未尝试过这种方法,并且根据您的转换器正在做什么,我认为如果您的XAML资源字典是外部的,那么将其链接到显示TextBlocks的窗口:

<Window.Resources>
    <ResourceDictionary Source="[the path to the resource dictionary]"/>
</Window.Resources>

然后在文本块中,确保它们具有在资源字典中定义的附加样式。如果在后面的代码中创建文本块我相信你应该能够使用FindResource来定位资源字典链接的样式。然后做这样的事情:

textBlock1.Style = (Style)FindResource("myTextBlockStyle");

答案 1 :(得分:1)

请参阅以下问题:how to use DynamicResource in the code behind?

使用SetResourceReference,相当于在Xaml中使用DynamicResource

因此,如果您的Style拥有Key myTextBlockStyle

TextBlock textBlock = new TextBlock();
textBlock.SetResourceReference(FrameworkElement.StyleProperty, "myTextBlockStyle");