2009-11-06 10 views
11

Zauważyłem, że zastosowanie DropShadowEffect do UMIlement sporadycznie powoduje, że treść UIElement nieco się rozmazuje. Jest to dość nieprzyjemny efekt: może sprawić, że zdjęcie będzie wyglądać nieostro, lub gorzej - cały obszar "wyskakujących okienek" będzie zupełnie nieczytelny.WPF DropShadowEffect Powoduje rozmycie

Nie widziałem nikogo innego narzekającego na to, więc mam nadzieję, że coś jest nie tak.

użycie Sample (zaciera treść losowo):

<Border> 
    <Border.Effect> 
     <DropShadowEffect /> 
    </Border.Effect> 
    <!-- (Content) --> 
</Border> 

Ale usunięcie DropShadowEffect czyści go:

<Border> 
    <!--<Border.Effect> 
      <DropShadowEffect /> 
     </Border.Effect>--> 
    <!-- (Content) --> 
</Border> 

Jakieś pomysły?

EDIT (dodane zrzut ekranu):

alt text http://signmgmt.com/eg/dropshadowblur.png

+0

Czy umieścisz zrzut ekranu? –

+0

Dodano zrzut ekranu. – egoodberry

Odpowiedz

12

Co mogę zrobić dla tego rodzaju scenariuszy jest oddanie Prostokąt tło i zastosować efekt rozmycia tylko, że tak, że prawdziwa zawartość będzie wolny od efekt, który z kolei zwiększa wydajność. Ponieważ po zastosowaniu efektu na obrazie wszystkie kolejne dzieci również uzyskują efekt, co sprawia, że ​​perfekcja i wygląd stają się złe. Spróbuj poniżej

<Grid> 
    <Rectangle ....> 
    <Rectangle.Effect> 
    <DropShadowEffect /> 
    </Rectangle.Effect> 
</Rectangle> 
....Your content ... 
</Grid> 
+0

Bardzo dobre podejście, które wydaje się skuteczne. Dzięki! – egoodberry

+0

Dziękuję za to. Właśnie spędziłem ostatnie dwie godziny na śledzeniu problemu z wydajnością, który ograniczyłem do efektu granicy. Szukałem obejścia i natknąłem się na to. Działa świetnie, jeszcze raz dziękuję! –

0

Nie jestem pewien, ale spróbować ustawić BlurRadious dla Image.Effects 0 domyślnie jest to 5 i zobacz, czy to pomoże?

+0

Nie ma to żadnego efektu. – egoodberry

1

Istnieje RendingQuality, którego można użyć, aby rozwiązać ten problem. Wartość domyślna jest tendencyjna pod względem wydajności. Zrób to:

<DropShadowEffect Color="#FFFD1E1E" ShadowDepth="0" RenderingBias="Quality"/> 
Powiązane problemy