В WPF как ссылаться на статический ресурс, определенный в другом файле XAML?
в WPF как ссылаться на статический ресурс, определенный в другом файле XAML? Это в том же проекте.
2 ответов
другой файл XAML должен быть словарем ресурсов. Вы объединяете его в текущий файл, используя свойство MergedDictionaries текущего ResourceDictionary. См.Объединенные Словари Ресурсов на MSDN. Пример:
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="myresourcedictionary.xaml"/>
<ResourceDictionary Source="myresourcedictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
затем в этом объекте страницы вы можете ссылаться на статические ресурсы, определенные в myresourcedictionary.xaml
или myresourcedictionary2.xaml
.
"другой файл XAML" может означать несколько разных вещей:
- App.xaml: ресурсы автоматически включаются в дерево ресурсов всего, что открыто, поэтому вам не нужно делать ничего лишнего.
- окно или страница .xaml: ресурсы могут быть доступны любому дочернему экземпляру объекта, например UserControl, который используется в окне.
- ResourceDictionary: необходимо явно объединить в дерево ресурсов где-то выше, где оно находится используемый. Это может быть приложение.в XAML, Windowxx.xaml или какой-либо элемент нижнего уровня. Использовать Объект ResourceDictionary.Для этого нужно объединить усилия.
есть также много альтернативных способов указать путь, но это самый простой:
<Window>
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/MyResourceDict.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>