微軟開源XAML Behaviors
長期以來,XAML Behaviors都是WPF/Silverlight開發中一個令人懊惱的部分。盡管用處極大,但該庫的分發和維護方法有些奇怪。隨著XAML Behaviors開源公告的發布以及相應NuGet包的創建,該問題最終得到了解決。
XAML Behaviors非常重要,因為它們提供了一種方法,讓開發人員能夠以一種簡潔、可重復的方式輕松地向UI對象添加功能。他們無需創建控件的子類或重復編寫邏輯代碼,只要簡單地增加一個XAML代碼片段。下面的例子摘自Anoop Madhusudanan題為“ Silverlight和WPF中的Behaviors、Triggers和Actions讓事情變得簡單 ”的博文:
諸如MouseDragElementBehavior這樣的行為有OnAttached和OnDetaching方法。這些方法主要是用于添加事件處理函數,雖然它們也可以以一種使用常規XAML語法無法實現的方式修改屬性。
XAML Behaviors的應用通常要視具體情況而定。不過,如果 將行為與附屬屬性配對 ,就可以借助樣式更廣泛地應用它們。
所有這些便利都是有代價的。XAML Behaviors是作為Blend System.Windows.Interactivity庫的一部分提供。由于是在.NET之外單獨提供,所以常常很難獲得它。即使在大部分庫在NuGet上提供了之后,開發人員常常還是不得不求助于由好心的開發人員所提供的非官方程序包,其中(有望)包含該庫的真實版本。即使到現在,也很難弄清楚哪個才是官方支持的版本。
隨著XAML Behaviors for UWP發布,所有這一切正在發生變化。最重要的是, XAML Behaviors現在開源了 ,其庫托管在GitHub上。官方NuGet程序包包括UWP 原生 和 托管 版本。
貢獻模型
Jon Chu 寫道:
一個由微軟最有價值專家(MVP)領導者組成的委員會將會評估貢獻,以確保項目的質量和發展方向。該項目委員會將會接收和評論社區提交的pull request。
隨著開源項目的發展,會有更多的貢獻者為Behaviors作貢獻,我們計劃調整項目結構,向為項目增添最大價值的貢獻者授權。不管是通過代碼、文檔,還是其他改進Behaviors的方式,我們的目標是讓社區對Behaviors有更大的控制權,并授權用戶構建和添加他們最希望看到的特性。
WPF支持
有關WPF支持方面,Jon Chu寫道:
截至目前,XAML Behaviors還沒有針對WPF的開源版本。不過,我們愿意繼續發展Behaviors。針對WPF等的跨平臺Behaviors當然在路線圖上,如果社區對此感興趣,我們將來當然會帶來新的Behaviors。
來自: http://www.infoq.com/cn/news/2016/02/XAML-Behaviors