Use mica in the SUI if mica is enabled in the theme (#14567)

Does what it says on the tin!
This commit is contained in:
Mike Griese 2022-12-16 09:36:08 -08:00 committed by GitHub
parent dbc27ab041
commit 772ed3a7b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 1 deletions

View File

@ -55,7 +55,7 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
_settingsClone{ settings.Copy() }
{
InitializeComponent();
_UpdateBackgroundForMica();
_InitializeProfilesList();
_colorSchemesPageVM = winrt::make<ColorSchemesPageViewModel>(_settingsClone);
@ -102,6 +102,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
_settingsSource = settings;
_settingsClone = settings.Copy();
_UpdateBackgroundForMica();
// Deduce information about the currently selected item
IInspectable lastBreadcrumb;
const auto size = _breadcrumbs.Size();
@ -640,4 +642,21 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
return SettingsNav().Background();
}
// If the theme asks for Mica, then drop out our background, so that we
// can have mica too.
void MainPage::_UpdateBackgroundForMica()
{
const auto& theme = _settingsSource.GlobalSettings().CurrentTheme();
const auto bgKey = (theme.Window() != nullptr && theme.Window().UseMica()) ?
L"SettingsPageMicaBackground" :
L"SettingsPageBackground";
if (const auto bgColor = Resources().TryLookup(winrt::box_value(bgKey)))
{
SettingsNav().Background(winrt::WUX::Media::SolidColorBrush(winrt::unbox_value<Windows::UI::Color>(bgColor)));
}
}
}

View File

@ -67,6 +67,8 @@ namespace winrt::Microsoft::Terminal::Settings::Editor::implementation
void _Navigate(hstring clickedItemTag, BreadcrumbSubPage subPage);
void _Navigate(const Editor::ProfileViewModel& profile, BreadcrumbSubPage subPage, const bool focusDeleteButton = false);
void _UpdateBackgroundForMica();
winrt::Microsoft::Terminal::Settings::Editor::ColorSchemesPageViewModel _colorSchemesPageVM{ nullptr };
Windows::UI::Xaml::Data::INotifyPropertyChanged::PropertyChanged_revoker _profileViewModelChangedRevoker;

View File

@ -31,16 +31,20 @@
<ResourceDictionary x:Key="Dark">
<Color x:Key="SettingsPageBackground">#282828</Color>
<Color x:Key="SettingsPageMicaBackground">#00000000</Color>
</ResourceDictionary>
<ResourceDictionary x:Key="Light">
<Color x:Key="SettingsPageBackground">#F9F9F9</Color>
<Color x:Key="SettingsPageMicaBackground">#00000000</Color>
</ResourceDictionary>
<ResourceDictionary x:Key="HighContrast">
<!-- Define resources for HighContrast mode here -->
<StaticResource x:Key="SettingsPageBackground"
ResourceKey="SystemColorWindowColorBrush" />
<StaticResource x:Key="SettingsPageMicaBackground"
ResourceKey="SystemColorWindowColorBrush" />
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>