首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WPF 資源與樣式:隱式樣式、外觀/主題與皮膚切換

     編輯:關於.NET

隱式樣式:以 TargetType 自動套用

移除 x:Key、改設 TargetType="{x:Type Button}",所有 Button 實例自動套用,無需逐一指定 Style 屬性。若資源鍵與型別衝突會報錯,建議避免以型別作鍵。

皮膚與主題

  • 主題:系統級外觀(如 Windows XP Luna、Win2K 經典),須為所有控件型別提供樣式/模板。
  • 皮膚:應用程式專屬外觀(如媒體播放器換膚),僅需針對應用程式實際使用的控件提供資源。

兩者皆透過資源字典實現。範例:BlueSkin、GreenSkin 繼承 ResourceDictionary,定義 Button 前景/背景。執行期切換 Application.Current.Resources 即可整體換膚。

皮膚切換效果

資源合併問題與暫時解法

切換皮膚會覆蓋應用程式層級既有資源。目前 WPF 不支援自動合併資源字典,需手動將非皮膚資源複製至各皮膚字典:

foreach (DictionaryEntry de in nonSkinAppResources)
    skinResources.Add(de.Key, de.Value);

WPF 團隊表示未來版本將改善。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved