2015-04-08 6 views
0

У меня есть два изображения: один для Windows-телефона и второй для оконного проекта. и я хочу эти изображения на каждой странице их соответствующей платформы.Фоновое изображение универсального приложения winrt

Что я сейчас делаю, это установить фон с app.cs, если в Windows-телефоне и в виде фрагментов кода приложения Windows.
Я хочу любой xaml метод, если он есть.

ответ

1

Установите фон каждой страницы на общий ресурс, а затем установите этот ресурс на свое изображение. По умолчанию фон страницы, будет установлен в

Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 

Вы можете установить ApplicationPageBackgroundThemeBrush на ImageBrush в ресурсах вашего app.xaml, но так как вы хотите различные изображения для Windows, так и для Windows Phone добавить еще один уровень косвенности. Создайте ResourceDictionary с тем же именем в обоих проектах, а затем слейте этот словарь в Application.Resources.

В app.xaml:

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

Затем установите фактическую кисть в PlatformDictionary.xaml файлов в телефон проектов Windows, и Windows. Как правило, вы будете падать обратно по умолчанию в режимах HighContrast, но если у вас есть важная информация в изображении вы можете обеспечить высокую версию контрастности изображения как PhonePageBackground.contrast-high.png использованием contrast resource qualifiers:

<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 будет такой же, за исключением фонового изображения страницы Windows в теме по умолчанию и SystemColorWindowColor в теме HighContrast.