Как добавить ResourceDictionary в проект библиотеки классов класса и получить доступ к нему

Я работаю над проектом, где у меня есть дочерний проект, который ссылается на проект библиотеки.

В моем проекте библиотеки (библиотека классов телефонов) как создать ResourceDictionary.xaml, где мне нужно добавить некоторые стили и использовать его в файлах xaml, а также в файлах .cs.

Мне нужно получить доступ к стилям в ResourceDictionary.xaml в моих файлах xaml, а также в файлах .cs, как это сделать?

Ответ 1

Создайте папку в качестве Generic в корневой папке и там ваши файлы ресурсов...

Чтобы получить доступ к нему в XAML

  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="Generic.xaml" />
  </ResourceDictionary.MergedDictionaries>

или

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/AssembleName;component/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>

Чтобы получить доступ к нему в .cs

new URI(pack://application:,,,/AssembleName;component/Generic.xaml)

Ответ 2

ОК, Наконец я решил это сам. вот как я его решил.

Когда вы создаете Phone Class Library Project, вы не будете ResourceDictionary.xaml by default, поэтому создайте страницу xaml, например, как вы создаете обычный файл xaml.

Right click on solution ->Add New Item ->Windows Phone Portrait Page.

Теперь удалите созданный файл .cs, добавьте в файл .XAML добавьте свой стиль, который находится в теге ResourceDictionary.

Выше все сделано в Library project.

Теперь в child app:

<Application.Resources>
        <ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="LibraryResourceDictionary.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

предположим, что у вас есть стиль, определенный в ResourceDictionary как MainScreenButtonStyle, который вы можете установить таким образом

button.Style = (Style)Application.Current.Resources["MainScreenButtonStyle"] as Style;