WPF中Dependency屬性設定順序的心得
今天在學習WPF依賴屬性的時候做了一個很經典的例子,即通過XMAL中的Trigger來改變按鈕的前景色。具體程式碼如下:
Code
可以很好的實現,將滑鼠移至按鈕上,然後按鈕的前景色變為藍色的功能。
但是嘗試給此按鈕設定一個Foreground屬性,程式碼:
Code
則使Trigger設定前者色的作用失效了。於是這便使我聯想到這幾天看到的一篇Dependency屬性計算順序的文章
(http://www.cnblogs.com/YilingLai/archive/2006/12/25/602889.html)
原來在第一步計算基礎值的時,系統是按照下面的優先順序來計算Dependency屬性的值的:
1、Local Value
2、Style. Triggers
3、Template Triggers
4、Style. Setters
5、Theme Style. Triggers
6、Theme Style. Setters
7、Property Value Inheritance
8、Default Value
因為Foreground="Black"屬於Local Value,比Style. Triggers的優先順序要高,所以在計算過程中
它掩蓋了Style. Triggers對Foreground屬性值的作用。
那麼既需要設定Foreground同時也需要通過設定Trigger來改變它怎麼做呢?
答案就是如下面程式碼所示:
Code
將Style提取到Window.Resources中,然後使此Button引用此資源。
因為在計算基礎值的順序時,Style. Triggers排在第二,而Style. Setter則排在第四的位置上。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-548718/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CSS中屬性的書寫順序CSS
- HTML 屬性順序HTML
- CSS 屬性宣告順序CSS
- HTML中設定多個class屬性css的優先順序,css樣式覆蓋HTMLCSS
- padding屬性值的順序padding
- CSS font 複合屬性順序CSS
- JavaScript遍歷物件屬性順序JavaScript物件
- 設定全域性死鎖優先順序
- css 屬性書寫順序推薦CSS
- SuperObject Delphi 的 JSON 屬性亂序 – 操作類改造 – 關於屬性順序的問題ObjectJSON
- Echarts中Option屬性設定Echarts
- ppt動畫出現順序怎麼設定 PPT設定動畫文字順序動畫
- CAD中的物件顯示順序如何設定物件
- Python例項屬性的優先順序分析Python
- sping中 schemaLocation 屬性設定
- python中__setattr__的屬性設定Python
- linux中設定程式排程的優先順序別Linux
- java setPriority()設定優先順序Java
- FastJson bean序列化屬性順序問題ASTJSONBean
- 微信聊天表情順序設定方法 微信表情順序怎麼調?
- 列定義的順序和列儲存的順序
- 表屬性設定
- JavaScript設定屬性JavaScript
- linux/unix中設定執行緒優先順序Linux執行緒
- ecshop如何調整商品屬性篩選項的顯示順序?
- win10怎麼設定優先順序 win10如何設定程式程式優先順序Win10
- WPF 之 依賴屬性與附加屬性(五)
- jQuery設定disabled屬性與移除disabled屬性jQuery
- Xcode設定自己的個性屬性XCode
- Cookie設定HttpOnly屬性CookieHTTP
- CSS中常用的屬性設定CSS
- Gradle的屬性設定大全Gradle
- python教程:屬性查詢順序,資料描述符Python
- js自動新增的物件屬性並非完全按照新增的順序排列JS物件
- WPF SL 屬性生成器
- 行內元素屬性設定
- 執行緒屬性設定執行緒
- jquery設定href屬性值jQuery