支援高對比佈景主題 (XAML)

Applies to Windows and Windows Phone

正在尋找本主題的 HTML/JavaScript 版本?請參閱支援高對比佈景主題 (HTML)

根據預設,使用 C++、C# 或 Visual Basic 的 Windows 執行階段應用程式可支援高對比佈景主題。如果使用者已選擇要讓系統使用來自系統設定或協助工具的高對比佈景主題,架構就會自動針對 UI 中的控制項和元件,使用產生高對比配置和呈現方式的色彩和樣式設定。

這項預設支援所根據的是使用預設佈景主題和範本。這些佈景主題和範本會將系統色彩當作資源定義來參考,當系統使用高對比模式時,資源來源就會自動變更。不過,如果您的控制項使用自訂範本、佈景主題以及樣式,請小心,不要停用內建的高對比支援。如果設定樣式時使用了其中一個適用於 Microsoft Visual Studio 的 XAML 設計工具,只要您定義的範本與預設範本有明顯的差異,此設計工具除了產生主要的佈景主題之外,還會另外產生高對比佈景主題。獨立的佈景主題字典會放到 ThemeDictionaries 集合,它是 ResourceDictionary 元素的專用屬性。

如需佈景主題與控制項範本的詳細資訊,請參閱快速入門:控制項範本。這裡通常會提供非常有用的資訊,例如特定控制項的 XAML 資源字典以及佈景主題,也可以了解佈景主題的建構方式,以及參考資源類似但每個可能的高對比設定不同的方式。

偵測何時啟用高對比佈景主題

Windows 執行階段應用程式可以使用 AccessibilitySettings 類別的成員,偵測高對比佈景主題的目前設定。HighContrast 屬性會判斷目前是否選取高對比佈景主題。如果將 HighContrast 設定為 true,則下一步是檢查 HighContrastScheme 屬性的值,以取得使用高對比佈景主題的名稱。「白底黑字」""和「黑底白字」""一般是程式碼應該回應的 HighContrastScheme 值。XAML 定義的 ResourceDictionary 索引鍵不可包含空格,因此在資源字典中,這些佈景主題的索引鍵通常是 "HighContrastWhite" 和 "HighContrastBlack"。您也應該針對預設的高對比佈景主題準備後援邏輯,以便在這個值是其他字串時使用。XAML 高對比範例會顯示這種情況下的邏輯。

附註  請確定您是從將應用程式初始化且已經顯示內容的範圍內呼叫 AccessibilitySettings 建構函式。

從 Windows 8.1 開始,應用程式便可在應用程式執行時,切換成使用高對比資源值。只要在樣式或範本 XAML 中使用 ThemeResource 標記延伸來要求資源,就可以達到這個目的。預設佈景主題 (generic.xaml) 都使用這項 ThemeResource 技術,因此,如果您使用預設控制項佈景主題,就會獲得這項行為。如果您在自訂範本和樣式中也使用這項 ThemeResource 資源技術,則自訂控制項或自訂控制項樣式也能夠執行這項工作。不過,以 Windows 8 為目標所建置的應用程式不會在應用程式執行時自動重新載入資源。

Windows 8 行為

Windows 8 不支援 ThemeResource 標記延伸,它將從 Windows 8.1 開始可供使用。此外,Windows 8 不支援針對 Windows 執行階段應用程式動態切換與佈景主題相關的資源。應用程式必須重新啟動,才能針對 XAML 範本和樣式挑選佈景主題變更。這並不是一個良好的使用者經驗,因此,強烈建議將應用程式重新編譯並定位為 Windows 8.1,讓它們可將樣式與 ThemeResource 用法搭配使用,且可在使用者進行時動態切換佈景主題。針對 Windows 8 編譯但在 Windows 8.1 上執行的應用程式會繼續使用 Windows 8 的行為。

相關主題

UI 對比和設定範例
XAML 協助工具範例
XAML 高對比範例
AccessibilitySettings

 

 

顯示:
© 2014 Microsoft