視覺化樣式概觀

本主題描述可視化樣式,並識別支援的 Windows 元件。 它也會說明您在應用程式中使用可視化樣式時必須採取的步驟。 這個主題包括下列各節:

Themes and Visual Styles

Windows 包含數項功能,可讓使用者量身打造 UI,以因應其個別需求和喜好設定。 這些功能包括 Microsoft Plus 中介紹的主題! 適用於 Windows 95。 主題是用戶可選取的設定集合,其中包含桌布、游標、字型、音效和圖示。 以下是主題的一些特性。

  • 主題設定是在具有類似win.ini檔案格式的 .theme 檔案中指定。
  • 獨立軟體廠商 (ISV) 可以使用產品來建立及散發 .theme 檔案。
  • 在 Windows Vista 之前的版本中,主題檔案會顯示在 [顯示] 控制面板的 [主題] 索引標籤上。 在 Windows Vista 和更新版本中,主題會顯示在個人化控制面板中。

如需 .theme 檔案的詳細資訊,請參閱 主題檔格式

可視化樣式是定義 Windows 通用控件外觀的規格。 視覺樣式與主題相關聯;也就是說,.theme 檔案包含區段,指定特定主題使用中時要套用的視覺樣式。 以下是視覺樣式的一些特性。

  • 用戶隨時都可以選取不同的主題來變更視覺樣式。
  • 您必須使用可視化樣式 API,將目前作用中的可視化樣式套用至應用程式的自定義或擁有者繪製控件,如果有的話。
  • 定義可視化樣式的資訊會儲存在 .msstyles 檔案中。 Microsoft 不支援 .msstyles 檔案的撰寫。

下圖顯示 Windows 7 桌面上具有任務列的簡單對話框,該桌面使用 Windows Aero 主題且沒有透明度。 由於應用程式未設定為使用視覺化樣式,因此不論主題設定為何,按鈕都會顯示相同。

screen shot of a dialog box with buttons that do not use transparency

相反地,下圖顯示相同桌面上的相同對話框,但這次應用程式已設定為使用可視化樣式。 請注意工作區中按鈕的不同外觀。 按鈕看起來不同,因為系統已套用在 Aero 主題中定義的視覺樣式。

screen shot of a dialog box with buttons that use transparency

下列範例顯示 Windows 8 桌面上的類似對話方塊。 在 Windows 8 中,視覺樣式一律為開啟,因此 Windows 8 應用程式會取得「免費」主題。

screen shot of a simple dialog box on the windows 8 desktop

可視化樣式元件

下列元件支援視覺化樣式:

  • 通用控制連結庫第 6 版或更新版本 (ComCtl32.dll)
  • UxTheme.dll中實作的可視化樣式 API
  • 主題服務
  • 一或多個視覺樣式定義檔案 (.msstyles)

可視化樣式 API 取決於稱為主題的系統服務。 常見的控件連結庫會查詢主題服務以取得樣式相關信息,並透過Windows 7 使用服務來轉譯目前可視化樣式中的控件。

在 Windows 8 和更新版本中,如果主題服務關閉,可視化樣式 API 仍可運作。 這表示當主題服務關閉時,視窗的通用控件和非工作區仍會有視覺樣式。 仍然需要主題服務的 Windows 8 功能包括:

  • 變更視覺效果樣式,通常是透過計算機 設定 的個人頁面。
  • 切換使用者、註銷、關閉和跨用戶工作階段共用的效能優化。

可視化樣式 API 會從與目前選取的主題相關聯的 .msstyles 檔案取得樣式資訊。 .msstyles 檔案包含一組定義可視化樣式的計量、字型、色彩和位陣圖

支援可視化樣式的應用程式需求

若要使用可視化樣式,您的應用程式必須在包含 ComCtl32.dll第 6 版或更新版本的作業系統上執行。 如果您想要讓應用程式使用第 6 版ComCtl32.dll,您必須新增應用程式指令清單或編譯程式指示詞,以指定如果有的話,應該使用第 6 版。 如需如何建立可讓應用程式使用可視化樣式的應用程式指令清單的詳細資訊,請參閱 啟用可視化樣式

對於一般控件,不需要採取任何進一步的動作,以確保控件會顯示在使用者慣用的視覺樣式中。

如果您的應用程式包含自定義或擁有者繪製的控件,您必須使用可視化樣式 API 來擷取目前使用中可視化樣式的相關信息,以及在該樣式中繪製控件。

針對 Windows 8 之前的 Windows 版本,應用程式通常需要提供兩個不同的程式碼路徑來繪製自定義和擁有者繪製控件。 當使用可視化樣式的主題為使用中時,一個程式代碼路徑會繪製控件,而另一個程式代碼路徑會在 Windows 傳統主題或高對比度主題為使用中時繪製控件。 不過,在 Windows 8 中,視覺樣式一律為開啟,因此不需要個別主題程式代碼路徑。 針對 Windows 8 所顯示的應用程式會取得「免費」的高對比度主題。如需詳細資訊,請參閱 支援高對比度主題

如需詳細資訊,請參閱 搭配使用可視化樣式搭配自定義和擁有者繪製的控件可視化樣式參考

可視化樣式