2010-09-23 46 views

Trả lời

6

Bạn có thể làm điều này cho Ví dụ:

<Label Content="LabelText:" > 
     <Label.BitmapEffect> 
      <DropShadowBitmapEffect Color="Black" Direction="320" ShadowDepth="10" Opacity=".5" Softness="9" /> 
     </Label.BitmapEffect> 
</Label> 
+4

Bắt đầu với .NET 4.0, điều này sẽ không làm gì cả. Sử dụng DropShadowEffect để thay thế. –

+0

... và được sử dụng trong các phiên bản trước 4.0, chúng sẽ làm chậm bản vẽ của giao diện người dùng (ngay cả khi chúng được sử dụng rất ít và trên các phần tử nhỏ). Tôi không chắc chắn 100% về nó, nhưng tôi nhớ rằng BitmapEffects buộc công cụ dựng hình sử dụng phần mềm dựng hình thay vì hiển thị phần cứng (nếu có). – HCL

5

Hiệu ứng bitmap đã lỗi thời kể từ .NET 3.5 (SP1?). Sử dụng DropShadowEffect để thay thế.

EDIT: Vì các hiệu ứng đã lỗi thời trong một thời gian, trong .NET 4.0 chúng là một khối mã trống, tức là không làm gì cả.

4

Sử dụng số DropShadowEffect thay vì DropShadowBitmapEffect. Bitmap-Effects đã lỗi thời. Nhưng hãy cẩn thận với các hiệu ứng. Sử dụng WPF performance Suite để kiểm tra hiệu suất hoạt động của các hiệu ứng đã sử dụng - Tôi đã thấy các tác động hiệu suất rất xấu bằng cách sử dụng các lớp hiệu ứng. Xem here để biết ví dụ.

Một tùy chọn khác là để trang trí nhãn bằng Border. Nếu bạn thiết lập độ dày phù hợp, điều này sẽ giống như một cái bóng:

<Border BorderThickness="1,1,20,20" BorderBrush="Black"> 
     <Label /> 
</Border> 

(Tôi đã không nhìn cách biên giới trên trông giống như Bạn phải chơi xung quanh một chút để có được một kết quả tốt.).

+0

Thanks for the tip. Tôi chỉ sử dụng nó với một nhãn nhân vật duy nhất, vì vậy tôi nên ổn (có thể sử dụng một hình ảnh thay thế là tốt). – Hedge

Các vấn đề liên quan