WPF支持類似PhotoShop的濾鏡功能,稱之為Effect。在.Net 4.0中,WPF就廢棄了對BitMapEffect的支持,轉向使用支持GPU加速的Effect類,例如,我們可以使用如下代碼生成帶有陰影效果的按鈕。
1 <Button ... > 2 <Button.Effect> 3 <DropShadowEffect /> 4 </Button.Effect> 5 Hello 6 </Button>
系統已經自帶了十來種Effect,基本上能滿足我們的大部分的處理要求。如果有HLSL基礎,我們可以寫出自己的特效。MSDN的如下兩篇文章詳細的介紹了這一過程:
微軟也自己提供了一些特效庫WPF Effects Library,這個庫在Channel 9上可以預覽,它提供了許多常用的濾鏡特效:如銳化、高光、扭曲、模糊、高光等,另外,還提供了一系列過渡特效,如百葉窗、溶解、旋轉、縮放等。可以方便我們打造炫酷的WPF程序。也支持Sliverlight,不過蛋疼的WinRT是不支持Effect的,WinRT的API和WPF比起來簡直弱爆了,期待Win10版本的Metro程序等多開放一些API吧,否則確實很提不起什么開發的動力來。
這個庫編譯起來比較麻煩(有的地方用VS2013編譯不過去),因此我這里上傳了一個編譯好了的一個版本 點擊下載。需要說明的是:
-
原始工程中內置了許多預覽圖片,導致體積較大,因此我去掉了內置的位圖,TransitionEffects使用的是本地"我的圖片"文件夾中的jpg 格式文件,如果該文件夾中沒有圖片的時候,則無法預覽。
-
TransitionEffects工程中使用了幾張png文件作為蒙版,導致該庫的體積達到了2m(感覺這些蒙版完全可以運行時生成,不知道為什么沒有這么做),發布不是很方便。因此我編譯了一個去掉了這些圖片的版本。
由於整個工程較大,我上傳到了百度網盤上了:點擊下載。