Mam etykietę i chcę dodać do niej cień.WPF - Jak dodać efekty (takie jak Shadow) do etykiety
Wygląda na to, że nie mogę zastosować do niego metody DropShadowBitmapEffect.
Co jeszcze mogę zrobić?
Mam etykietę i chcę dodać do niej cień.WPF - Jak dodać efekty (takie jak Shadow) do etykiety
Wygląda na to, że nie mogę zastosować do niego metody DropShadowBitmapEffect.
Co jeszcze mogę zrobić?
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>
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.
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.).
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
Począwszy od .NET 4.0, to nic nie da. Zamiast tego użyj DropShadowEffect. –
... 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