Ich zeichne in ein DrawingContext
und möchte einen Schlagschatteneffekt auf einen Teil der Zeichnung anwenden. Im Moment erstelle ich die relevanten Teile in DrawingGroup
und wende ein BitmapEffect
an, aber das hat keine Auswirkung:
Dies zeichnet alles innerhalb des layer
korrekt, aber ohne den Schlagschatteneffekt.
Was mache ich falsch / wie sonst könnte ich einen Schlagschatten auf eine Reihe von Primitiven in einem DrawingContext anwenden?
BitmapEffect
ist eine alte Eigenschaft (sie verwendeten CPU-gerenderte Effekte) von vor .NET 3.5. Die Eigenschaft hat keine Auswirkungen in 4.0.
In 4.0 sollten Sie die Eigenschaft Effect
verwenden, die Pixel Shader verwendet.
DrawingGroup
scheint jedoch keine Effekt-Eigenschaft zu haben - es klingt so, als müssten Sie setze den Effekt stattdessen auf das übergeordnete Benutzeroberflächenelement .
Wenn Sie mit .NET Framework 3.5 SP1 oder höher arbeiten, sollten Sie UIElement.Effect oder Visual.VisualEffect (dieser ist geschützt, so dass Sie davon abgeleitet werden müssten), stattdessen mit einer Instanz von System.Windows.Media.Effects.DropShadowEffect .
Tags und Links wpf effect drawingcontext