一个winrt通用应用的背景图

Background image of a winrt universal application

我有两张图片,一张用于 windows phone,第二张用于 windows 项目。我希望这些图片出现在各自平台的每个页面上。

我目前正在做的是在 if windows phone 和 if windows 应用代码片段中设置来自 app.cs 的背景。
如果有的话,我想要任何 xaml 方法。

将每个页面的背景设置为公共资源,然后将该资源设置为您的图像。默认情况下,页面的背景将设置为

Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

您可以在 app.xaml 的资源中将 ApplicationPageBackgroundThemeBrush 设置为 ImageBrush,但由于您想要 Windows 和 Windows Phone 的不同图像,请添加另一个间接级别。在两个项目中创建同名的 ResourceDictionary,然后将该字典合并到 Application.Resources.

在app.xaml中:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="PlatformDictionary.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

然后在Windows和WindowsPhone工程中的PlatformDictionary.xaml文件中设置实际刷机。通常你会在高对比度模式下回到默认值,但如果你在图像中有重要信息,你可以使用 contrast resource qualifiers 提供图像的高对比度版本 PhonePageBackground.contrast-high.png :

<ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Name="Default">
        <ImageBrush x:Key="ApplicationPageBackgroundThemeBrush" ImageSource="Assets/PhonePageBackground.png"/>
    </ResourceDictionary>
    <ResourceDictionary x:Name="HighContrast">
        <SolidColorBrush x:Key="ApplicationPageBackgroundThemeBrush" Color="{ThemeResource PhoneBackgroundColor}"/>
    </ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>

除了默认主题中的 Windows 页面背景图像和 HighContrast 主题中的 SystemColorWindowColor 之外,Windows 版本将相同。