在其他程序集中使用转换器设置样式
本文关键字:转换器 设置 样式 集中 其他 程序 程序集 | 更新日期: 2023-09-27 18:35:46
我有一个类库,其中包含一个保存一些Styles
的ResourceDictionary
。字典引用一个Converter
,它在同一程序集中定义,如下所示:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converter="clr-namespace:Lib.Resources.Converters">
<converter:TextSizeConverter x:Key="LabelTextSizeConverter" />
<Style TargetType="{x:Type Label}">
<Setter Property="FontSize"
Value="{Binding ActualWidth, RelativeSource={RelativeSource Self}, Converter={StaticResource LabelTextSizeConverter}}" />
</Style>
<ResourceDictionary />
当我尝试在另一个项目中加载字典时,我收到一条XamlParseException
,指出Converter
是未知类型的。
var rd = new ResourceDictionary()
{
Source = new Uri("pack://application:,,,/Lib.Resources;component/Styles/Label.xaml")
};
Resources.MergedDictionaries.Add(rd);
我尝试了转换器的各种BuildActions
,但没有任何成功。
有没有办法解决这个问题,或者我需要以完全不同的方式解决这个问题?
您必须
在转换器中添加assembly
xmlns
xmlns:converter="clr-namespace:Lib.Resources.Converters;assembly=YOUR Assembly"