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

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

问题描述:

我有一个IMultiValueConverter动态创建TextBlock控件。问题是它没有样式。如何使用xaml资源字典中定义的样式?

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

请参见下面的问题:how to use DynamicResource in the code behind?

使用SetResourceReference,它等同于使用DynamicResource在XAML

所以,如果你Style有重点myTextBlockStyle

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

我从来没有尝试过在此之前,并根据你的转换器是干什么的,我想如果你的XAML资源字典是外部的,然后将其链接到您的显示的TextBlocks窗口:

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

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

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

我已经有我的资源字典链接像你所显示。我试图使用特定的样式(基于关键字)来创建通过“IMultiValueConverter”动态创建的“TextBlock”。 – gcso

+0

我刚刚在您评论的同时更新了我的答案。尝试FindResource方法,看看它是否有助于找到你的风格。我只在一个元素中嵌入了多值转换器,例如连接名字和姓氏,我没有使用它们来动态创建控件。 – Josh