Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Bitmappseffekter gör det möjligt för designers och utvecklare att tillämpa visuella effekter på renderat WPF-innehåll (Windows Presentation Foundation). Med bitmappseffekter kan du till exempel enkelt använda en DropShadowBitmapEffect effekt eller en oskärpa på en bild eller en knapp.
Viktigt!
I .NET Framework 4 eller senare är klassen BitmapEffect föråldrad. Om du försöker använda klassen BitmapEffect får du ett föråldrat undantag. Det icke-föråldrade alternativet till klassen BitmapEffect är klassen Effect. I de flesta fall är Effect-klassen betydligt snabbare.
WPF-bitmappseffekter
Bitmappseffekter (BitmapEffect objekt) är enkla pixelbearbetningsåtgärder. En bitmappseffekt tar en BitmapSource som indata och skapar en ny BitmapSource efter att effekten har tillämpats, till exempel oskärpa eller skugga. Varje bitmappseffekt exponerar egenskaper som kan styra filtreringsegenskaperna, till exempel Radius av BlurBitmapEffect.
I WPF kan du som ett specialfall ange effekter som egenskaper för live Visual-objekt, till exempel en Button eller TextBox. Pixelbearbetningen tillämpas och renderas i realtid. I det här fallet vid tidpunkten för återgivningen konverteras en Visual automatiskt till dess BitmapSource motsvarighet och matas som indata till BitmapEffect. Utdata ersätter Visual-objektets standardåtergivningsbeteende. Det är därför BitmapEffect objekt tvingar visuella objekt att endast återges i programvara, dvs. ingen maskinvaruacceleration på visuella objekt när effekter tillämpas.
BlurBitmapEffect simulerar ett objekt som inte är i fokus.
OuterGlowBitmapEffect skapar en halo av färg runt perimetern för ett objekt.
DropShadowBitmapEffect skapar en skugga bakom ett objekt.
BevelBitmapEffect skapar en fasning som höjer en bilds yta enligt en angiven kurva.
EmbossBitmapEffect skapar en bumpmappning av en Visual för att ge intryck av djup och textur från en artificiell ljuskälla.
Anmärkning
WPF-bitmappseffekter återges i programvaruläge. Alla objekt som tillämpar en effekt återges också i programvara. Prestanda försämras mest när du använder bitmappseffekter på stora visuella objekt eller animerar egenskaper för en bitmappseffekt. Detta är inte att säga att du inte bör använda Bitmap-effekter på det här sättet alls, men du bör vara försiktig och testa noggrant för att se till att dina användare får den upplevelse du förväntar dig.
Anmärkning
WPF-bitmappseffekter stöder inte partiell förtroendekörning. Ett program måste ha fullständig förtroendebehörighet för att kunna använda bitmappseffekter.
Så här tillämpar du en effekt
BitmapEffect är en egenskap hos Visual. Därför är det lika enkelt att tillämpa effekter på visuella objekt, till exempel en Button, Image, DrawingVisualeller UIElement, som att ange en egenskap. BitmapEffect kan anges till ett enda BitmapEffect objekt eller så kan flera effekter länkas med hjälp av BitmapEffectGroup-objektet.
I följande exempel visas hur du använder en BitmapEffect i 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>
I följande exempel visas hur du använder en BitmapEffect i kod.
// 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;
Anmärkning
När en BitmapEffect tillämpas på en layoutcontainer, till exempel DockPanel eller Canvas, tillämpas effekten på elementets eller det visuella objektets visuella träd, inklusive alla dess underordnade element.
Skapa anpassade effekter
WPF tillhandahåller även ohanterade gränssnitt för att skapa anpassade effekter som kan användas i hanterade WPF-program. Ytterligare referensmaterial för att skapa anpassade bitmappseffekter finns i dokumentationen Ohanterad WPF-bitmappseffekt.
Se även
.NET Desktop feedback