Silverlight版本的LoadMask
使用 Silverlight 獲取服務端數(shù)據(jù)時,只能使用異步調(diào)用,需要一定的時間,在這一段時間內(nèi),通常不希望用戶進行其它操作,否則可能會干擾當前數(shù)據(jù)的加載。在 ExtJS 下, Ext.Element 的 mask 和 unmask 方法可以輕松的對任意的界面元素進行遮罩和取消遮罩,在遮罩的過程中,這個界面元素暫時不能被操作(當然, ExtJS 之下還有專門的 Ext.LoadMask 類),有興趣的可以參考 ExtJS 相關的 API 。因此在Silverlight下,我們同樣需要類似的 mask 和 unmask方法。
先體驗一下最終效果(需要安裝Silverlight 3.0):
我們先定義一個接口 ILoadMask ,并且定義了兩個方法 Mask 和 Unmask,作用就不多說了,如下圖所示。
接下來,我們在提供一種默認的實現(xiàn) GridLoadMask ,能夠?qū)rid進行遮罩,如下圖所示:
接下來,為UIElement提供兩個擴展方法, Mask 和 Unmask,如下圖:
最后貼出使用方法,假設我們的 XAML 如下圖:
對應的后臺實現(xiàn)代碼如下:
順便提供完整的源代碼下載,有興趣的可以看看。
張志敏所有文章遵循創(chuàng)作共用版權(quán)協(xié)議,要求署名、非商業(yè) 、保持一致。在滿足創(chuàng)作共用版權(quán)協(xié)議的基礎上可以轉(zhuǎn)載,但請以超鏈接形式注明出處。
本博客已經(jīng)遷移到 GitHub , 圍觀地址: https://beginor.github.io/
浙公網(wǎng)安備 33010602011771號