Joel có một gợi ý tuyệt vời về việc sử dụng BitmapEffects.
Tuy nhiên, nếu bạn có thể sử dụng .NET 3.5 SP1, tôi sẽ hướng bạn về phía Hiệu ứng kết xuất GPU. Vì vậy, thay vì sử dụng UIElement.BitmapEffect, bạn sẽ sử dụng UIElement.Effect. .NET 3.5 SP1 có hai hiệu ứng GPU được xây dựng trong: BlurEffect và DropShadowEffect. Bạn cũng có thể tạo các hiệu ứng GPU của riêng mình ... và đây là nơi bạn sẽ sử dụng ShaderEffect.
Kiểm tra bài đăng trên blog của Greg Schechter series để biết thêm thông tin. Dưới đây là một đoạn mã cho một hiệu ứng chuột mà tôi vừa mới triển khai vài ngày trước (nó thực sự xuất hiện giống như hiệu ứng bitmap phát sáng bên ngoài do ShadowDepth là 0, nhưng không chính xác):
<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, tôi chỉ tìm ra điều này và chuẩn bị đăng nó. Tôi đoán bạn có được đại diện. – Dylan
Whee. Vui vì bạn đang tìm kiếm ở đúng nơi. :) –
Đề nghị tốt đẹp, không biết tại sao tôi không nghĩ về nó đầu tiên ... đặc biệt là cho rằng tôi chỉ thực hiện một con chuột có hiệu lực vào ngày khác. Một điều để chỉ ra về BitmapEffects, tuy nhiên, là họ là một vấn đề hiệu suất được biết đến. Vì vậy, xem ra cho điều đó. –
cplotts