Как настроить Акриловую кисть
Я хочу покрасить поверхность панели стека акриловой кистью.
<StackPanel Background="{ThemeResource SystemControlAcrylicElementBrush}"></StackPanel>
Это работает для меня, но есть проблема, когда я хочу изменить цвет оттенка и непрозрачность. Существует следующий код для его изменения:
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
<AcrylicBrush x:Key="MyAcrylicBrush"
BackgroundSource="HostBackdrop"
TintColor="#FFFF0000"
TintOpacity="0.8"
FallbackColor="#FF7F0000"/>
</ResourceDictionary>
Я не знаю, где я должен поместить это и переименовать кисть для этого?
<StackPanel Background="{ThemeResource **MyAcrylicBrush**}"></StackPanel>
Спасибо за помощь. PS Вам нужен Windows Insider SDK и системная сборка 16190 или выше
2 ответа
Способ 1:
добавлять ResourceDictionary.ThemeDictionaries
в Application.Resources
В App.xaml
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
<AcrylicBrush x:Key="MyAcrylicBrush" BackgroundSource="HostBackdrop" TintColor="#FFFF0000" TintOpacity="0.8" FallbackColor="#FF7F0000"/>
</ResourceDictionary>
<ResourceDictionary x:Key="HighContrast">
<SolidColorBrush x:Key="MyAcrylicBrush" Color="{ThemeResource SystemColorWindowColor}"/>
</ResourceDictionary>
<ResourceDictionary x:Key="Light">
<AcrylicBrush x:Key="MyAcrylicBrush" BackgroundSource="HostBackdrop" TintColor="#FFFF0000" TintOpacity="0.8" FallbackColor="#FFFF7F7F"/>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Application.Resources>
Способ 2:
Как ответила @jsmyth886
Добавить отдельный
ResourceDictionary
файл и поместите вашResourceDictionary.ThemeDictionaries
код<ResourceDictionary.ThemeDictionaries> <ResourceDictionary x:Key="Default"> <AcrylicBrush x:Key="MyAcrylicBrush" BackgroundSource="HostBackdrop" TintColor="#FFFF0000" TintOpacity="0.8" FallbackColor="#FF7F0000"/> </ResourceDictionary> <ResourceDictionary x:Key="HighContrast"> <SolidColorBrush x:Key="MyAcrylicBrush" Color="{ThemeResource SystemColorWindowColor}"/> </ResourceDictionary> <ResourceDictionary x:Key="Light"> <AcrylicBrush x:Key="MyAcrylicBrush" BackgroundSource="HostBackdrop" TintColor="#FFFF0000" TintOpacity="0.8" FallbackColor="#FFFF7F7F"/> </ResourceDictionary> </ResourceDictionary.ThemeDictionaries>
Вы
MergedDictionaries
вApp.xaml
Слить вашResourceDictionary
файл<Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Dictionary1.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources>
Дополнительные сведения: ссылки на ресурсы ResourceDictionary и XAML, элементы управления XAML для Windows 10 - стилизация
Вы можете создать ResourceDictionary
например, под названием "ThemeDictionary.xaml" и поместите код, который у вас есть для AcrylicBrush
там.
Тогда в вашем App.xaml
вы можете сослаться на ваш ResourceDictionary
вот так:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ThemesDictionary.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>