Přehled rastrových efektů
Rastrové efekty umožňují návrhářům a vývojářům použít vizuální efekty na vykreslený obsah WPF (Windows Presentation Foundation). Například rastrové efekty umožňují snadno použít DropShadowBitmapEffect efekt nebo rozostření na obrázek nebo tlačítko.
Důležitý
V rozhraní .NET Framework 4 nebo novější je třída BitmapEffect zastaralá. Pokud se pokusíte použít třídu BitmapEffect, zobrazí se zastaralá výjimka. Nezastaralá alternativa ke třídě BitmapEffect je třída Effect. Ve většině případů je třída Effect výrazně rychlejší.
Bitmapové efekty WPF
Rastrové efekty (BitmapEffect objekt) jsou jednoduché operace zpracování pixelů. Rastrový efekt použije BitmapSource jako vstup a po použití efektu vytvoří nový BitmapSource, například rozostření nebo stín. Každý rastrový efekt zveřejňuje vlastnosti, které mohou řídit vlastnosti filtrování, například RadiusBlurBitmapEffect.
Jako zvláštní případ lze v WPF nastavit efekty jako vlastnosti u živých Visual objektů, například Button nebo TextBox. Zpracování pixelů se provádí a vykresluje za běhu. V tomto případě se při vykreslování automaticky převede Visual na jeho BitmapSource ekvivalent a je předán jako vstup do BitmapEffect. Výstup nahradí výchozí chování vykreslování objektu Visual. Proto objekty BitmapEffect při použití efektů nutí vizuály vykreslovat pouze v softwaru, tj., u vizuálů není použita hardwarová akcelerace.
BlurBitmapEffect simuluje objekt, který se zobrazuje mimo fokus.
OuterGlowBitmapEffect vytvoří kolem objektu barevné halo.
DropShadowBitmapEffect vytvoří stín za objektem.
BevelBitmapEffect vytvoří zkosení, které zvedne povrch obrázku podle zadané křivky.
EmbossBitmapEffect vytváří reliéfní mapu Visual, aby vytvořila dojem hloubky a textury z umělého zdroje světla.
Poznámka
Rastrové efekty WPF se vykreslují v softwarovém režimu. Všechny objekty, které použijí efekt, se také vykreslí v softwaru. Při použití rastrových efektů u velkých vizuálů nebo animování vlastností rastrového efektu je výkon nejvíce snížený. To neznamená říct, že byste neměli vůbec používat bitmapové efekty tímto způsobem, ale měli byste jednat obezřetně a důkladně testovat, aby vaši uživatelé získali očekávanou zkušenost.
Poznámka
Rastrové efekty WPF nepodporují provádění částečné důvěryhodnosti. Aby aplikace používala rastrové efekty, musí mít úplná oprávnění důvěryhodnosti.
Jak použít efekt
BitmapEffect je vlastnost Visual. Proto použití efektů u vizuálů, jako je například Button, Image, DrawingVisualnebo UIElement, je stejně snadné jako nastavení vlastnosti. BitmapEffect lze nastavit na jeden objekt BitmapEffect nebo více efektů lze zřetězit pomocí objektu BitmapEffectGroup.
Následující příklad ukazuje, jak použít BitmapEffect v jazyku XAML (Extensible Application Markup Language).
<Button Width="200">You Can't Read This!
<Button.BitmapEffect>
<!-- <BitmapEffectGroup> would go here if you wanted to apply more
then one effect to the Button. However, in this example only
one effect is being applied so BitmapEffectGroup does not need
to be included. -->
<!-- The larger the Radius, the more blurring. The default range is 20.
In addition, the KernelType is set to a box kernel. A box kernel
creates less disruption (less blur) then the default Gaussian kernel. -->
<BlurBitmapEffect Radius="10" KernelType="Box" />
</Button.BitmapEffect>
</Button>
Následující příklad ukazuje, jak použít BitmapEffect v kódu.
// Get a reference to the Button.
Button myButton = (Button)sender;
// Initialize a new BlurBitmapEffect that will be applied
// to the Button.
BlurBitmapEffect myBlurEffect = new BlurBitmapEffect();
// Set the Radius property of the blur. This determines how
// blurry the effect will be. The larger the radius, the more
// blurring.
myBlurEffect.Radius = 10;
// Set the KernelType property of the blur. A KernalType of "Box"
// creates less blur than the Gaussian kernal type.
myBlurEffect.KernelType = KernelType.Box;
// Apply the bitmap effect to the Button.
myButton.BitmapEffect = myBlurEffect;
Poznámka
Pokud se BitmapEffect použije u kontejneru rozložení, například DockPanel nebo Canvas, efekt se použije na vizuální strom prvku nebo vizuálu, včetně všech jeho podřízených prvků.
Vytváření vlastních efektů
WPF také poskytuje nespravovaná rozhraní pro vytváření vlastních efektů, které lze použít ve spravovaných aplikacích WPF. Další referenční materiály pro vytváření vlastních rastrových efektů naleznete v dokumentaci Nespravovaný WPF Bitmap Effect.
Viz také
- BitmapEffectGroup
- BitmapEffectInput
- BitmapEffectCollection
- neřízený rastrový efekt WPF
- Přehled zobrazování
- zabezpečení
- přehled vykreslování grafiky WPF
-
2D grafika a zpracování obrazu
.NET Desktop feedback