2010-09-23 9 views

Odpowiedz

6

Można to zrobić na przykład:

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

Począwszy od .NET 4.0, to nic nie da. Zamiast tego użyj DropShadowEffect. –

+0

... i używane w wersjach starszych niż 4.0 spowolnią rysowanie interfejsu użytkownika (nawet jeśli są używane bardzo mało i na małych elementach). Nie jestem w 100% pewny, ale mam na myśli, że BitmapEffects wymusza na aparacie renderującym używanie renderowania programowego zamiast renderowania sprzętowego (jeśli jest dostępne). – HCL

5

Efekty bitmapowe są przestarzałe od .NET 3.5 (SP1?). Zamiast tego użyj DropShadowEffect.

EDYCJA: Ponieważ efekty są przez jakiś czas nieaktualne, w .NET 4.0 są pustym blokiem kodu, tzn. Nie powodują żadnych zmian.

4

Użyj DropShadowEffect zamiast 012. Efekty bitmapowe są przestarzałe. Ale uważaj na efekty. Użyj WPF performance Suite, aby sprawdzić zachowanie wydajności używanych efektów - już zauważyłem bardzo zły wpływ na wydajność przy użyciu klas efektów. Zobacz przykład here.

Inną opcją byłoby udekorowanie etykiety za pomocą Border. Jeżeli ustawić grubość odpowiednio, byłoby to jak cień:

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

(ja nie wyglądał jak powyższa granica wygląda Musisz poeksperymentować trochę, aby uzyskać dobry wynik.).

+0

Dzięki za cynk. Używam go tylko z jedną etykietą znaku, więc powinienem czuć się dobrze (może też użyć obrazka). – Hedge

Powiązane problemy