Uwp多个视图主题

时间:2018-02-17 11:21:30

标签: c# xaml uwp

提前致谢。

我遇到问题,我在google上搜索了很长时间。我无法找到解决问题的方法。

在uwp中,我想让用户自定义主题。

当然,我有三个主题,Light,Dark和follow系统。

简单来说,在App类的构造函数中,我有代码:

Current.RequestedTheme = ApplicationTheme.Dark;

我把主题改为黑暗。就像这张照片:

Dark theme

当失去焦点时

它将是:

enter image description here

这是正常的。但是我在app中打开了一个新窗口:

当辅助窗口具有焦点时:

enter image description here

也是正常的。但当辅助窗口失去焦点时:

enter image description here

文字颜色是黑暗主题的白色,是正常的,但背景也是白色,它是浅色主题的背景!

我尝试将辅助窗口的框架的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>

0 个答案:

没有答案