为什么重写ApplicationPageBackgroundThemeBrush不起作用?

时间:2013-02-26 16:00:27

标签: xaml windows-8 windows-runtime

我正在尝试为我的Windows 8商店应用程序定义默认背景颜色,但是虽然它在XAML编辑器和Blend中正确显示,但它在Windows 8和Windows RT中运行时会出现默认的黑色背景仿真器。

我基于“Split App”VS 2012模板创建了一个全新的Windows 8应用程序,并修改了App.xaml,为ApplicationPageBackgroundThemeBrush指定了一个新值。

这就是我的App.xaml的样子:

<Application
x:Class="App3.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App3"
xmlns:localData="using:App3.Data">

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>

            <!-- 
                Styles that define common aspects of the platform look and feel
                Required by Visual Studio project and item templates
             -->
            <ResourceDictionary Source="Common/StandardStyles.xaml"/>
        </ResourceDictionary.MergedDictionaries>

        <!-- Application-specific resources -->

        <x:String x:Key="AppName">App3</x:String>

        <!-- Basic foreground and background colours -->
        <SolidColorBrush x:Key="ApplicationPageBackgroundThemeBrush" Color="#FF3CA5DC"/>
        <SolidColorBrush x:Key="ApplicationPageForegroundThemeBrush" Color="White"/>

    </ResourceDictionary>
</Application.Resources>

1 个答案:

答案 0 :(得分:4)

似乎这两个画笔仅用于StandardStyles.xaml中的一些样式,其中一个是

<Style x:Key="LayoutRootStyle" TargetType="Panel">

您可以将其应用于根面板。但是,App.xaml中的更改不会影响此样式。它仅影响该画笔的进一步使用,因此如果您想使用这些特定的画笔,我会看到以下变体:

1)在App.xml中声明它们并进一步使用它:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">

2)在<{p>下的StadardStyles.xaml中声明它们

<ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Key="Default">
        <!-- Style Goes Here -->
    </ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>

在这种情况下,所有StandardStyles都会受到影响,但您也应该在Grid中使用LayoutRootStyle。

但实际上,使用这些画笔显示出如此微薄的利润,我认为最好将面板背景设置为您需要的。