我正在學習WPF的概念,例如數據綁定,命令,資源,元素綁定,樣式等,它們廣泛地使用標記擴展,並且我有問題了解背後的含義標記類,因爲它們的使用超出了我理解它們應該使用的範圍。因此,這裏有幾點我需要明確: (所有的代碼片段都來自臨WPF在C#2010本書)難以理解和使用xaml標記擴展
的含義是什麼,並使用靜態擴展?它可以用來 聲明靜態資源,可以聲明爲 ,但此XAML混淆了我:
<Button ... Foreground="{x:Static SystemColors.ActiveCaptionBrush}" >
在{X:靜態SystemColors.ActiveCaptionBrush},什麼是在這裏靜態角色 ,以及如果我在這裏使用x:Dynamic,會發生什麼變化?該 書上說這XAML相當於這個隱藏代碼:
cmdAnswer.Foreground = SystemColors.ActiveCaptionBrush;
這意味着,如果我有靜態屬性的類,我應該 能夠使用這樣的事情:
<Button ... Foreground="{x:Static MyClass.SomeStaticProperty}" >
但它沒有工作,儘管我創建了一個類,我嘗試使用 本地:靜態(指本地命名空間),但VisualStudio 不允許我使用它。這是什麼實現 的正確方法?
綁定的含義是什麼(超越明顯的含義,什麼是 發生在我綁定時)?它用於資源綁定,或數據或元素綁定。我能夠理解元素綁定,但綁定到不是元素的對象導致問題。對於 例如:
<TextBlock Text="{Binding Source={x:Static SystemFonts.IconFontFamily}, Path=Source}"></TextBlock>
這是有約束力的文本到SystemFonts.IconFontFamily 財產,有什麼用X:靜態在這種情況下,如何將它綁定 的財產類我創造了什麼?還有如何更新 文本屬性的文本字段,如果綁定 目標的值發生變化?由於綁定,它應該自己更新,這是 的情況下?
本書中的所有示例都使用SystemFonts.IconFontFamily, 沒有我見過的解釋了這種綁定的用法,以及如何爲我創建的類執行此操作?在這方面的一些幫助是 需要。我想問一下關於綁定的更多信息,但我會在關於綁定的單獨問題 中這樣做。
最後,推薦一本書或資源,解釋什麼是 發生的事情,而不是如何做到這一點?
感謝您的回答! – SpeedBirdNine