Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何使用xaml资源字典中定义的样式?_Wpf - Fatal编程技术网

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

Wpf 如何使用xaml资源字典中定义的样式?,wpf,Wpf,我有一个IMultiValueConverter,它可以动态创建TextBlock控件。问题是它没有风格 如何告诉我的新TextBlock使用在我的XAML资源字典中定义的样式?我以前从未尝试过这种方法,根据转换器的工作,我认为如果XAML资源字典是外部的,那么将其链接到显示TextBlock的窗口: <Window.Resources> <ResourceDictionary Source="[the path to the resource dictionary]"

我有一个
IMultiValueConverter
,它可以动态创建
TextBlock
控件。问题是它没有风格


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

我以前从未尝试过这种方法,根据转换器的工作,我认为如果XAML资源字典是外部的,那么将其链接到显示TextBlock的窗口:

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

见以下问题:

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

因此,如果您的
样式
具有myTextBlockStyle键

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

我已经像你展示的那样链接了我的资源字典。我正在尝试为通过
IMultiValueConverter
动态创建的
TextBlock
使用特定样式(基于键)。我刚刚在您发表评论的同时更新了我的答案。尝试FindResource方法,看看它是否有助于定位您的样式。我只在元素中嵌入了多值转换器,比如连接名字和姓氏,我没有使用它们动态创建控件。
TextBlock textBlock = new TextBlock();
textBlock.SetResourceReference(FrameworkElement.StyleProperty, "myTextBlockStyle");