2011-01-24 4 views
6

В приложении Silverlight мы можем определить ресурсы в App.xaml и получить доступ к ним из любого документа XAML без необходимости явно объединять эти ресурсы.Глобальные ресурсы в библиотеке классов

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

<UserControl.Resources> 
<ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary Source="MyResources.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 
</UserControl.Resources> 

Есть ли способ избежать этого? Довольно утомительно делать это в каждом документе XAML для общедоступных ресурсов.

ответ

1

Я собирался задать тот же вопрос. К сожалению, то, что вы описали, довольно близко к тому, что я смог придумать. Теоретически кажется, что вы можете поместить их в файл \ generic.xaml в библиотеке, но я не смог выполнить эту работу - возможно, я просто делаю что-то бессовестное. Лучшее, что я мог сделать, это просто немного короче вариант того, что вы делаете, а именно, чтобы оставить из синтаксиса MergedDictionaries:

<UserControl.Resources> 
    <commonui:CommonStringsPublic x:Key="commonStrings" /> 
    <ResourceDictionary Source="/Alanta.Client.UI.Common;component/CommonResources.xaml" x:Key="commonResources" /> 
</UserControl.Resources> 

Я хотел бы, чтобы кто-то мне точку к лучшему решение :-).

+0

Я думаю, что это так хорошо, как это получается .. Спасибо! Тем временем я также создал визуальный студийный шаблон для создания пользовательских элементов управления, который добавляет это, а также другой общий код (т. Е. Директивы xmlns и т. Д.). –