共用方式為


可視化樣式概觀

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

主題和可視化樣式

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 主題且沒有透明度。 由於應用程式未設定為使用視覺化樣式,因此不論主題設定為何,按鈕都會顯示相同。

對話框的螢幕快照,其中包含不使用透明度的按鈕

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

對話框的螢幕快照,其中包含使用透明度的按鈕

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

windows 8 桌面 上簡單對話框的螢幕快照

視覺風格元件

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

  • 通用控制連結庫第 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 所顯示的應用程式會取得「免費」的高對比度主題。如需詳細資訊,請參閱 支援高對比度主題

如需更多詳細資訊,請參閱 使用視覺樣式配合自訂和 Owner-Drawn 控制項,以及 視覺樣式參考資料

可視化樣式