Sdílet prostřednictvím


Přehled efektů bitmap

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řit efekt na obrázek nebo tlačítko.

Důležité

V rozhraní .NET Framework 4 nebo novější BitmapEffect je třída zastaralá. Pokud se pokusíte použít BitmapEffect třídu, zobrazí se zastaralá výjimka. Zastaralá alternativa ke BitmapEffect třídě je Effect třída. Ve většině situací Effect je třída výrazně rychlejší.

Bitmapové efekty WPF

Rastrové efekty (BitmapEffect objekt) jsou jednoduché operace zpracování pixelů. Rastrový efekt použije BitmapSource jako vstup a vytvoří nový BitmapSource po použití efektu, například rozostření nebo stínu. Každý rastrový efekt zveřejňuje vlastnosti, které mohou řídit vlastnosti filtrování, například Radius .BlurBitmapEffect

Jako zvláštní případ lze v WPF nastavit efekty jako vlastnosti u živých Visual objektů, jako je například a Button nebo TextBox. Zpracování pixelů se použije a vykreslí za běhu. V tomto případě je v době vykreslování Visual automaticky převeden na jeho BitmapSource ekvivalent a je předán jako vstup do BitmapEffect. Výstup nahrazuje výchozí chování objektu Visual při vykreslování. To je důvod, proč BitmapEffect objekty při použití efektů vynucují vykreslování vizuálů pouze v softwaru, tj. žádná hardwarová akcelerace u vizuálů.

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 není říct, že byste neměli používat bitmapové efekty tímto způsobem vůbec, ale měli byste používat opatrnosti a důkladně testovat, aby vaši uživatelé získali očekávané prostředí.

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

BitmapEffectje vlastnost .Visual Proto použití efektů u vizuálů, jako Buttonje například , Image, DrawingVisualnebo UIElement, je stejně snadné jako nastavení vlastnosti. BitmapEffect lze nastavit na jeden BitmapEffect objekt nebo více efektů lze zřetězený pomocí objektu BitmapEffectGroup .

Následující příklad ukazuje, jak použít BitmapEffect jazyk 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:

BitmapEffect Pokud se 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 k nespravovanému wpf bitmap efektu .

Viz také