提前致谢。
我遇到问题,我在google上搜索了很长时间。我无法找到解决问题的方法。
在uwp中,我想让用户自定义主题。
当然,我有三个主题,Light,Dark和follow系统。
简单来说,在App类的构造函数中,我有代码:
Current.RequestedTheme = ApplicationTheme.Dark;
我把主题改为黑暗。就像这张照片:
当失去焦点时
它将是:
这是正常的。但是我在app中打开了一个新窗口:
当辅助窗口具有焦点时:
也是正常的。但当辅助窗口失去焦点时:
文字颜色是黑暗主题的白色,是正常的,但背景也是白色,它是浅色主题的背景!
我尝试将辅助窗口的框架的RequestedTheme设置为Dark:
var newWindow = Window.Current;
var newAppView = ApplicationView.GetForCurrentView();
newAppView.Title = "New window";
var frame = new Frame();
frame.RequestedTheme = ElementTheme.Dark;
frame.Navigate(typeof(NavPage),"youareNotMain");
newWindow.Content = frame;
newWindow.Activate();
await ApplicationViewSwitcher.TryShowAsStandaloneAsync(
newAppView.Id,
ViewSizePreference.UseMinimum,
currentAV.Id,
ViewSizePreference.UseMinimum);
});
但不行。
我尝试在辅助窗口类中设置主题;
this.RequestedTheme = ElementTheme.Dark;
它也不起作用。
有焦点时都有黑暗的主题,但失去焦点有错误。
感谢您的帮助。
example in Google Drive(ZIP) 我只用
<ResourceDictionary x:Key="Light">
<AcrylicBrush x:Key="Back" BackgroundSource="HostBackdrop" TintColor="White" TintOpacity=".6"/>
<AcrylicBrush x:Key="NavigationViewDefaultPaneBackground" BackgroundSource="Backdrop" TintColor="White" TintOpacity=".6"/>
<AcrylicBrush x:Key="NavigationViewExpandedPaneBackground" BackgroundSource="HostBackdrop" TintColor="White" TintOpacity=".8"/>
</ResourceDictionary>
<ResourceDictionary x:Key="Dark">
<AcrylicBrush x:Key="Back" BackgroundSource="HostBackdrop" TintColor="Black" TintOpacity=".6"/>
<AcrylicBrush x:Key="NavigationViewDefaultPaneBackground" BackgroundSource="Backdrop" TintColor="Black" TintOpacity=".6"/>
<AcrylicBrush x:Key="NavigationViewExpandedPaneBackground" BackgroundSource="HostBackdrop" TintColor="Black" TintOpacity=".6"/>
</ResourceDictionary>