Как получить доступ к ресурсам окна в WinUI 3
Я только начал работать над проектом WinUi 3 (Desktop) и заблокировал попытки добавить ресурсы Window в окно.
Я бы подумал, что следующее сработает. Однако, похоже, нет свойства Resources.
<Window.Resources>
</Window.Resources>
3 ответа
По-видимому, это был выбор дизайна, если процитировать Мигеля , члена Microsoft, из выпуска Github :
[...] объект Window не имеет свойства Resource, например, WPF. Это было дизайнерское решение [...]
Альтернативой является использование словаря в контексте компонента, например:
<ListView>
<ListView.Resources>
<!-- My resources -->
</ListView.Resources>
</ListView>
Вы можете объявить ресурс в корневом элементе управления вашего окна.
<Window ...>
<Border ...>
<Border.Resources>
<Style TargetType="Button">
<Setter Property="Margin" Value="10"/>
</Style>
</Border.Resources>
<Button ... />
</Border>
</Window>
Вы правы - ресурсов Window нет. Вы можете иметь глобально общие ресурсы, создавая ресурсы приложения, или вы можете
<page>
а также
<Control>
ресурсы уровня.
Что вы, вероятно, хотите, так это определить словари ресурсов в App.xml
<Application
x:Class="BOMCheck.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="using:CommunityToolkit.WinUI.UI.Converters"
xmlns:helpers="using:BOMCheck.Helpers"
xmlns:local="using:BOMCheck"
xmlns:media="using:Microsoft.UI.Xaml.Media"
RequestedTheme="Light">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>