優秀的視覺設計是應用程式成功的關鍵因素。Windows 8 提供豐富的樣式系統,讓開發者能建立符合品牌識別的獨特介面。本文以 Split App 範本為例,示範如何覆寫預設樣式、建立全域資源字典、自訂色彩主題與控制項樣板。
<Page.Resources>
<!-- 僅在當前頁面有效 -->
<SolidColorBrush x:Key="MyBrush" Color="#FF0000" />
</Page.Resources>
<ResourceDictionary xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">
<SolidColorBrush x:Key="MyBrush" Color="#FF0000" />
</ResourceDictionary>
在 App.xaml 合併全域資源:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Common/StandardStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
<TextBlock Style="{StaticResource PageHeaderTextStyle}" />
Visual Studio 2012 → Visual C# → Windows Store → Split App (XAML)
預設樣式集中在 Common/StandardStyles.xaml
Windows 8 系統色彩定義於 Program Files\Windows Kits\8.0\Include\winrt\xaml\design,不建議直接修改,而是在 StandardStyles.xaml 重新定義同名 Key 來覆寫:
<!-- 主背景色 -->
<SolidColorBrush x:Key="ApplicationPageBackgroundThemeBrush" Color="#018297"/>
<!-- 文字前景色 -->
<SolidColorBrush x:Key="ApplicationForegroundThemeBrush" Color="#FFFFFF"/>
<SolidColorBrush x:Key="ApplicationSecondaryForegroundThemeBrush" Color="#FF991100"/>
<SolidColorBrush x:Key="ApplicationPointerOverForegroundThemeBrush" Color="#AAAAAA"/>
<!-- 返回按鈕樣式 -->
<SolidColorBrush x:Key="BackButtonBackgroundThemeBrush" Color="#00000000"/>
<SolidColorBrush x:Key="BackButtonForegroundThemeBrush" Color="#FFFFFF"/>
<SolidColorBrush x:Key="BackButtonPressedBackgroundThemeBrush" Color="#00000000"/>
<SolidColorBrush x:Key="BackButtonPressedForegroundThemeBrush" Color="#CCCCCC"/>
<SolidColorBrush x:Key="BackButtonPointerOverBackgroundThemeBrush" Color="#00000000"/>
<!-- ListView 佔位符背景 -->
<SolidColorBrush x:Key="ListViewItemPlaceholderBackgroundThemeBrush" Color="#306772"/>
在 App.xaml 定義:
<x:String x:Key="AppName">Windows Store Controls</x:String>
頁面中引用:
<TextBlock Text="{StaticResource AppName}" Style="{StaticResource PageHeaderTextStyle}"/>
搜尋 Standard80ItemTemplate,修改資料樣板:
<DataTemplate x:Key="Standard80ItemTemplate">
<Grid Margin="6">
<Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="60" Height="60">
<Image Source="{Binding Image}" Stretch="UniformToFill"/>
</Border>
<StackPanel Grid.Column="1" Margin="10,0,0,0">
<TextBlock Text="{Binding Title}" Style="{StaticResource ItemTextStyle}" MaxHeight="40"/>
<TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap"/>
</StackPanel>
</Grid>
</DataTemplate>
將 Assets 目錄下的預設圖片替換為自訂設計圖片。
雙擊 Package.appxmanifest → 啟動畫面 → 背景顏色設為 #018297,與主題色一致。
| 項目 | 預設風格 | 自訂風格 |
|---|---|---|
| 背景色 | 淺灰/白色系 | #018297 (深青綠) |
| 主要文字 | 黑色 | 白色 (#FFFFFF) |
| 次要文字 | 灰色 | #FF991100 (橘紅) |
| Tile 背景 | 系統預設圖片 | 自訂品牌圖片 |
| 啟動畫面 | 預設灰色 | #018297 統一色系 |
StandardStyles.xaml 或獨立資源字典BrandPrimaryBrush 而非 BlueBrushBasedOn 擴充而非完全重寫HighContrast 版本資源原始碼下載:查看本欄目