Silverlight: добавить словарь ресурсов из другого проекта

#silverlight #xaml

#silverlight #xaml

Вопрос:

У меня есть словарь ресурсов XAML в проекте A. Как я могу объединить его со словарем ресурсов в проекте B?

Комментарии:

1. Находятся ли оба проекта в одном решении?

2. Нет, один из проектов доступен только через DLL.

Ответ №1:

Где Granite.Xaml — это библиотека, а ConvertersList.xaml был помечен как ресурс.

 <ResourceDictionary Source="/Granite.Xaml;component/ConvertersList.xaml" />
  

Вот содержимое словаря ресурсов. Обратите внимание, что мне пришлось включить имя сборки в объявление пространства имен, даже если преобразователи находятся в том же проекте, что и словарь. Если вам не удастся этого сделать, вы получите исключение во время выполнения.

 <ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:converters="clr-namespace:Granite.Xaml.Converters;assembly=Granite.Xaml"
    >

    <converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
    <converters:DebugBreakConverter x:Key="DebugBreakConverter" />
    <converters:DebugTraceConverter x:Key="DebugTraceConverter" />
    <converters:DictionaryConverter x:Key="DictionaryConverter" />
    <converters:MaxLengthToBoolTrueConverter x:Key="MaxLengthToBoolTrueConverter" />
    <converters:MinLengthToBoolTrueConverter x:Key="MinLengthToBoolTrueConverter" />
    <converters:NotBoolToVisibilityConverter x:Key="NotBoolToVisibilityConverter" />
    <converters:NotConverter x:Key="NotConverter" />
    <converters:NotNullToBooleanConverter x:Key="NotNullToBooleanConverter" />
    <converters:NotNullToVisibilityConverter x:Key="NotNullToVisibilityConverter" />
    <converters:NotZeroToBooleanConverter x:Key="NotZeroToBooleanConverter" />
    <converters:NotZeroToVisibilityConverter x:Key="NotZeroToVisibilityConverter" />
    <converters:NullToBooleanConverter x:Key="NullToBooleanConverter" />
    <converters:NullToVisibilityConverter x:Key="NullToVisibilityConverter" />
    <converters:StringToBooleanConverter x:Key="StringToBooleanConverter" />
    <converters:StringToLowerConverter x:Key="StringToLowerConverter" />
    <converters:StringToUpperConverter x:Key="StringToUpperConverter" />
    <converters:ZeroToBooleanConverter x:Key="ZeroToBooleanConverter" />
    <converters:ZeroToVisibilityConverter x:Key="ZeroToVisibilityConverter" />

</ResourceDictionary>
  

Ответ №2:

У меня это работает:

 <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/Namespace.From.Your.Dll;component/Style.xaml"/>      
</ResourceDictionary.MergedDictionaries>