Joel hat einen großartigen Vorschlag zur Verwendung von BitmapEffects. Wenn Sie .NET 3.5 SP1 verwenden können, würde ich Sie in Richtung GPU gerenderten Effekte steuern. Anstatt also UIElement.BitmapEffect zu verwenden, würden Sie UIElement.Effect verwenden. .NET 3.5 SP1 enthält zwei integrierte GPU-Effekte: BlurEffect und DropShadowEffect. Sie können auch Ihre eigenen GPU-Effekte erstellen ... und hier würden Sie ShaderEffect verwenden.
Weitere Informationen finden Sie in Greg Schechters Blogpost series.
hier ein Stück Code für eine Maus over-Effekt ist, dass ich vor ein paar Tagen gerade umgesetzt (es zeigt tatsächlich ein bisschen wie eine äußere Schein Bitmap-Effekt auf Grund der ShadowDepth 0 zu sein, aber nicht genau):
<Path
x:Name="mouseOverEffect"
Width="80"
Height="43.916"
Stretch="None"
Fill="#FFFFFFFF"
Opacity="0"
>
<Path.Data>
<PathGeometry FillRule="Nonzero">
<PathFigure IsClosed="True" StartPoint="39.9592899612151,25.9913931634531">
<LineSegment Point="80.0000001464848,43.9159987905149"/>
<LineSegment Point="39.9513899394755,4.97379893856246E-14"/>
<LineSegment Point="1.77635636294422E-15,43.9159987905149"/>
<LineSegment Point="39.9592899612151,25.9913931634531"/>
</PathFigure>
</PathGeometry>
</Path.Data>
<Path.Effect>
<DropShadowEffect
Color="#FFFFFFFF"
BlurRadius="10"
ShadowDepth="0"
/>
</Path.Effect>
</Path>
lol, ich habe das gerade herausgefunden und wollte es jetzt posten. Ich schätze, du bekommst die Wiederholung. – Dylan
Whee. Freut mich, dass du an den richtigen Stellen gesucht hast. :) –
Netter Vorschlag, weiß nicht, warum ich nicht zuerst daran dachte ... vor allem gegeben, dass ich gerade eine Maus über den Effekt neulich gemacht habe. Ein Hinweis auf BitmapEffects ist jedoch, dass es sich um ein bekanntes Leistungsproblem handelt. Also pass auf das auf. –
cplotts