Megosztás a következőn keresztül:


Bitképeffektusok áttekintése

A bitképeffektusok lehetővé teszik a tervezők és fejlesztők számára, hogy vizuális effektusokat alkalmazzanak a Renderelt Windows Presentation Foundation (WPF) tartalmakra. A bitképeffektusokkal például egyszerűen alkalmazhat DropShadowBitmapEffect effektust vagy elmosódott effektust egy képre vagy egy gombra.

Fontos

A .NET-keretrendszer 4- vagy újabb verziójában a BitmapEffect osztály elavult. Ha megpróbálja használni a BitmapEffect osztályt, elavult kivételt fog kapni. A BitmapEffect osztály a Effect osztály nem elavult alternatívája. A legtöbb esetben a Effect osztály jelentősen gyorsabb.

WPF bitképeffektusok

A bitképeffektusok (BitmapEffect objektum) egyszerű képpontfeldolgozási műveletek. A bitképeffektus bemenetként egy BitmapSource-t használ, és egy új BitmapSource-et hoz létre az effektus alkalmazása után, például elmosás vagy vetett árnyék. Minden bitképeffektus olyan tulajdonságokat tesz elérhetővé, amelyek szabályozhatják a szűrési tulajdonságokat, például RadiusBlurBitmapEffect.

Különleges esetként a WPF-ben az effektusok tulajdonságokként állíthatók be élő Visual objektumokon, például Button vagy TextBox. A képpontfeldolgozás futásidőben lesz alkalmazva és renderelve. Ebben az esetben a rendereléskor a Visual automatikusan átalakítják a BitmapSource egyenértékűvé, és a BitmapEffectbemeneteként táplálják. A kimenet felülírja a Visual objektum alapértelmezett renderelési viselkedését. Ezért BitmapEffect objektumok csak szoftveres megjelenítésre kényszerítik a vizualizációkat, azaz nincs hardveres gyorsítás a vizualizációkon az effektusok alkalmazásakor.

Megjegyzés:

A WPF bitképeffektusok szoftveres módban jelennek meg. Minden olyan objektum, amely effektust alkalmaz, a szoftverben is megjelenik. A teljesítmény leginkább akkor romlik, ha nagy képi elemekre alkalmaz Bitmap-effektusokat, vagy ha animálási tulajdonságokat használ egy Bitkép-effektusnál. Ez nem azt mondja, hogy egyáltalán ne használjon Bitmap-effektusokat, de körültekintően és alaposan tesztelje, hogy a felhasználók megkapják a várt élményt.

Megjegyzés:

A WPF bitmap-effektusok nem támogatják a részleges megbízhatósági végrehajtást. Az alkalmazásoknak teljes megbízhatósági engedélyekkel kell rendelkezniük a bitképeffektusok használatához.

Effektus alkalmazása

BitmapEffect egy tulajdonság a Visual-en. Ezért a vizualizációkra, például egy Button, Image, DrawingVisualvagy UIElementeffektusok alkalmazása ugyanolyan egyszerű, mint egy tulajdonság beállítása. BitmapEffect beállítható egyetlen BitmapEffect objektumra, vagy a BitmapEffectGroup objektummal több effektus is összekapcsolható.

Az alábbi példa bemutatja, hogyan alkalmazhat BitmapEffect az Extensible Application Markup Language (XAML) alkalmazásban.

<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>

Az alábbi példa bemutatja, hogyan alkalmazhat BitmapEffect a kódban.

// 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;

Megjegyzés:

Ha a BitmapEffect egy elrendezési konténerre van alkalmazva, például DockPanel vagy Canvas, az effektus az elem vagy vizuális vizuális fájára lesz alkalmazva, beleértve az összes gyermekelemet is.

Egyéni effektusok létrehozása

A WPF nem felügyelt felületeket is biztosít a felügyelt WPF-alkalmazásokban használható egyéni effektusok létrehozásához. Az egyéni bitképeffektusok létrehozásához további referenciaanyagot a Nem felügyelt WPF bitképeffektus dokumentációjában talál.

Lásd még