来自不同项目的资源字典抛出异常

时间:2015-12-03 15:47:27

标签: wpf xaml

我在一个名为ItemsTemplate的单独项目中有一个资源字典。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style TargetType="{x:Type TextBox}"
           x:Key="TextBoxesTemplate"
           >
        <Setter Property="OverridesDefaultStyle"
                Value="True"/>
        <Setter Property="Margin"
                Value="5"/>
        <Setter Property="BorderThickness"
                Value="1"></Setter>
    </Style>
</ResourceDictionary>

我想在许多不同的项目中使用它。当我运行它时,我抛出异常说:  'Set property 'System.Windows.ResourceDictionary.Source' threw an exception.'

所以这是我的实现和我尝试过的:

    

    <ResourceDictionary  Source="/ItemTemplates;component/Style.xaml"></ResourceDictionary>

<TextBox Style="{StaticResource TextBoxesTemplate}"
         Grid.Row="0"
         Grid.Column="2"
         Text="{Binding SelectedModel.Code}"/>

我试图改为

<ResourceDictionary.MergedDictionaries>
     <ResourceDictionary  Source="/ItemTemplates;component/Style.xaml">
</ResourceDictionary.MergedDictionaries>

<ResourceDictionary.MergedDictionaries>
     <ResourceDictionary  Source="/ItemTemplates;component/Style.xaml">
</ResourceDictionary.MergedDictionaries>

<ResourceDictionary.MergedDictionaries>
     <ResourceDictionary  Source="pack:application,,,/ItemTemplates;component/Style.xaml">
</ResourceDictionary.MergedDictionaries>

注意:这是.net 4.5.2

编辑使用此构建。但仍然有异常

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary  Source="/ItemTemplates;component/Style.xaml"
                                 x:Name="SDictionary" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

1 个答案:

答案 0 :(得分:0)

请参阅链接:https://msdn.microsoft.com/en-us/library/aa970069(VS.85).aspx

只要当前项目具有对单独项目的引用。

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/ItemTemplates;component/Style.xaml" />
</ResourceDictionary.MergedDictionaries>

请再次检查参考资料Source="/ItemTemplatesSource="/ItemsTemplate,因为在您的问题中,您写的是:&#34; 我在一个名为 ItemsTemplate <的单独项目中有一个资源字典/强> &#34;

希望可以帮到你!