Wie wird ein Schlagschatteneffekt beim Zeichnen auf einen DrawingContext in WPF angewendet?

8

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:

%Vor%

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?

    
Roman Starkov 28.12.2011, 12:09
quelle

2 Antworten

2

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 .

    
Paul Stovell 28.12.2011 15:44
quelle
-4

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 .

    
Simon Mourier 07.03.2012 10:45
quelle

Tags und Links