轉帖|其它|編輯:郝浩|2010-09-27 14:15:45.000|閱讀 757 次
概述:在WPF中,使用BitmapEffect對所有Visual對象進行位圖特效處理(比如文本,按鈕,圖像,甚至矩形、畫布等),它是基于像素級別的,而且是基于軟件處理模式而非硬件加速的處理模式。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在WPF中,使用BitmapEffect對所有Visual對象進行位圖特效處理(比如文本,按鈕,圖像,甚至矩形、畫布等),它是基于像素級別的,而且是基于軟件處理模式而非硬件加速的處理模式。
BitmapEffect在控件渲染時起作用,當控件渲染時,該Visual對象轉化成相應的BitmapSource并作為BitmapEffect的輸入,顯示為經過BitmapEffect處理后的效果。
我們可以對控件進行以下幾種常見的位圖特效處理:
(1)虛化效果(BlurBitmapEffect)
(2)外輝光效果(OuterGlowBitmapEffect)
(3)陰影效果(DropShadowBitmapEffect)
(4)斜面特效(BevelBitmapEffect)
(5)浮雕特效(EmbossBitmapEffect)
由于軟件處理模式的效率相對較低,在有大量Visual對象或在有大量動畫時慎用,此時你必須在效果與效率之間做一個相對的平衡。
下面先看看虛化效果:
上圖:
第一個按鈕是未經虛化的按鈕效果;
第二個按鈕是當Radius="1"時的效果;
第三個按鈕是當Radius="2"時的效果;
這是XAML代碼:
<Button Width="200" Height="30" Content="這是未虛化的按鈕" Canvas.Left="24" Canvas.Top="8"/>
<Button Width="200" Height="30" Content="這是虛化了的按鈕(Radius=1)" Canvas.Top="47" Canvas.Left="24">
<Button.BitmapEffect>
<BlurBitmapEffect Radius="1" KernelType="Box" />
</Button.BitmapEffect>
</Button>
<Button Width="200" Height="30" Content="這是虛化了的按鈕(Radius=2)" Canvas.Top="87" Canvas.Left="24">
<Button.BitmapEffect>
<BlurBitmapEffect Radius="2" KernelType="Box" />
</Button.BitmapEffect>
</Button>
再來看看外發光效果(輝光效果):
上圖:
第一個是對TextBox的做了細微外發光特效處理的顯示效果(參數值為:GlowColor="Blue" GlowSize="4" Noise="0.3" Opacity="0.4");
第二個對TextBox的外發光效果"力度比較大",我們發現效果非常明顯(參數值:GlowColor="Blue" GlowSize="30" Noise="1" Opacity="0.4")。
這是相應的XAML代碼:
<TextBox Width="200" Canvas.Left="24" Canvas.Top="141">
<TextBox.BitmapEffect>
<OuterGlowBitmapEffect GlowColor="Blue" GlowSize="4" Noise="0.3" Opacity="0.4" />
</TextBox.BitmapEffect>
</TextBox>
<TextBox Width="200" Canvas.Left="24" Canvas.Top="194">
<TextBox.BitmapEffect>
<OuterGlowBitmapEffect GlowColor="Blue" GlowSize="30" Noise="1" Opacity="0.4" />
</TextBox.BitmapEffect>
</TextBox>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:網絡轉載