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

WPF 命名樣式進階:TargetType、跨型別複用、繼承與程式碼控制

     編輯:關於.NET

TargetType 簡化屬性前綴

設定 TargetType="{x:Type Control}" 後,Setter 可省略 Control. 前綴。若需設定衍生類專屬屬性(如 Button.IsCancel),須將 TargetType 設為該衍生類。

字體大小單位:無前綴屬性支援 32pt,帶前綴僅支援像素值(32),此為已知限制。

跨型別樣式複用機制

移除 TargetType、改用明確前綴(Control.FontSize、TextElement.FontSize),即可套用至任何擁有相同相依屬性實作的型別。Button 繼承 Control.FontSize,TextBlock 與 Control 共享 TextElement.FontSize 實作,故同一樣式可同時套用。

相依屬性繼承關係圖

甚至可混入特定型別屬性(Button.IsCancel),執行期僅對擁有該屬性的元素生效,類似 Word 樣式套用至圖片時忽略字體屬性。

跨型別樣式套用效果

樣式覆寫與繼承

  • 實例覆寫:元素直接設定屬性優先於樣式。
  • BasedOn 繼承:BasedOn="{StaticResource BaseStyle}" 繼承基礎樣式,可新增或覆寫 Setter。

程式碼動態套用樣式

button.Style = (Style)FindResource("XStyle"); // 依玩家動態切換

雖資料觸發器更適合此場景,但程式碼控制提供彈性備選。樣式亦可純程式碼建構。

程式碼動態換樣式
樣式繼承最終效果
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved