如果我在XAML中创建一个带有主题背景的网格:
<Grid x:Name="MyGrid" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
然后在代码中更改其主题:
MyGrid.RequestedTheme = ElementTheme.Dark;
网格背景颜色从白色变为黑色,与预期完全一样。
但是,如果我在XAML中创建网格而未指定其背景:
<Grid x:Name="MyGrid">
然后执行此代码:
MyGrid.RequestedTheme = ElementTheme.Dark;
MyGrid.Background = MyGrid.Resources["ApplicationPageBackgroundThemeBrush"] as Brush;
背景不会变为黑色。换句话说,当在代码中访问时,主题资源似乎不依赖于当前请求的元素主题。
有人知道如何访问代码中的主题资源,以便它们的值正确反映元素当前请求的主题吗?