我很在意WPF的發展,有人說微軟不再維護WPF了,無所謂,隨他去。
MSDN上有簡體版:http://msdn.microsoft.com/zh-cn/library/vstudio/bb613588.aspx,但翻譯的有點糟糕
英文原文地址:http://msdn.microsoft.com/library/vstudio/bb613588
下面是我的翻譯:
Ribbon Control:
WPF4.5包含Ribbon control;Ribbon control包含快速訪問工具欄,系統菜單欄和標簽頁。
獲取更多信息,請查看Ribbon Overview
顯示大量分組數據性能提升:
當屏幕上需要呈現大量的分組數據時,UI可以進行界面虛擬化。
VirtualizingPanel類定義了IsVirtualizingWhenGrouping屬性。
這個屬性可以使UI在呈現分組數據時進行界面虛擬化。
如果你想了解分組數據的更多信息,
請看:“怎樣用xaml為分組數據排序”(譯注:這個MSDN上就沒給出鏈接)
如果你想了解虛擬化呈現分組數據的的相關信息
請看:“IsVirtualizingWhenGrouping”擴展屬性的相關內容
針對VirtualizingPanel的新特性
1.
你可以使用ScrollUnit附加屬性來指定一個VirtualizingPanel(VirtualizingStackPanel)顯示部分的數據項
如果ScrollUnit被設置為Item,VirtualizingPanel將只顯示容器內的可見的數據項。
如果ScrollUnit被設置為Pixel,VirtualizingPanel將顯示呈現在屏幕上的那一部分。(譯注:這兩句的內容有待驗證)
2.
你可以使用CacheLength附加屬性來指定VirtualizingPanel的緩存大小(呈現前和呈現后都可以指定)
這個緩存是VirtualizingPanel不適用虛擬化的方式呈現數據之前或之后的緩存空間
使用緩存是為了避免在用戶滾動滾動條時呈現界面元素。以此提示用戶滾動滾動條時界面的響應速度。
.NET在分配這個緩存時使用了一個較低的優先權。以免用戶在操作系統時界面反應遲鈍。
VirtualizingPanel.CacheLengthUnit屬性標志這緩存大小的單位
綁定到靜態屬性
WPF支持綁定到靜態屬性,
數據綁定引擎監控靜態屬性,一旦靜態屬性的值發生改變,將會觸發一個指定的事件
例如:
如果有一個類,取名叫做SomeClass;
它有一個靜態屬性,取名叫做MyProperty;
在這個類內部可以按如方式定義靜態事件:
public static event EventHandler MyPropertyChanged;
當MyProperty的值改變時,這個事件將被觸發。
注意:
第一:事件的名字必須為:[靜態屬性名]changed
第二:SomeClass類必須包含一個名為StaticPropertyChanged的事件(定義方式如下),
public static event EventHandler<PropertyChangedEventArgs> StaticPropertyChanged;
在非UI線程訪問集合
你可以在一個非UI線程中訪問和修改UI線程中的集合數據。
這樣你就可以使用后台線程從UI線程中接收數據。
當你使用另一個線程修改數據集合的時候,展現在用戶界面上的數據也會被相應的修改。
驗證數據正確性
你可以使用INotifyErrorInfo接口來給數據實體類定義驗證規則,
這個接口會異步驗證用戶錄入的信息,並把結果展現在界面上。
這個接口也支持自定義錯誤對象,在一個屬性上定義多個驗證邏輯,跨屬性的驗證邏輯(譯注:一個屬性的值導致另一個屬性驗證不通過)
還有實體層面的錯誤(譯注:enty-level errors這一句不知道是什么意思)
要想了解更多信息,請看:http://msdn.microsoft.com/en-us/library/vstudio/system.componentmodel.inotifydataerrorinfo
延遲更新數據綁定的數據源
如果你使用數據綁定來更新數據源,那么你可以使用delay屬性來指定多久之后,把數據的更改通知數據源。
例如:你有一個slider,它的值雙向綁定到一個數據源,並且UpdateSourceTrigger屬性被設置為PropertyChanged
這樣當一個用戶滑動這個slider的時候,slider滑塊的位置每改變一個像素,數據源都要發生相應的更改。
其實,我們只需要在slider停止滑動的時候更新數據源就可以了。
為了避免數據源被頻繁的更新,可以使用delay屬性來解決這個問題(譯注:這里是挺長的一句,懶得翻譯了)。
綁定到實現了ICustomTypeProvider接口的類型
WPF支持綁定到ICustomTypeProvider的繼承類型,
1.可以綁定到PropertyType類型的屬性,例如,可以把Path屬性可以綁定到一個自定義類型
2.可以綁定到一個DataType類型的屬性
3.作為一個可以決定DataGrid中自動生成的列的屬性
----------------------------------------------
還有一些特性沒有翻譯,下一篇再翻譯吧
另外有一個專家唱衰WPF,地址看這里:http://www.infoq.com/articles/Win8-LOB-Options