12
votes

WPF DropShadowEffect causant des flammes

J'ai observé que l'application d'une Droffeshadoweffecte à un uielement provoque un peu le contenu de l'uielement. C'est un très mauvais effet: il peut causer une photo à la recherche d'une photo ou de pire - rendez toute une région «popup» complètement illisible.

Je n'ai vu personne d'autre se plaindre à ce sujet, alors mon inclination est donc de penser que Il y a quelque chose que je fais mal. p>

Utilisation de l'échantillon (contenu BLUKS au hasard): p> xxx pré>

mais enlever le dropshadoweffecte l'efface: p>

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


0 commentaires

3 Réponses :


14
votes

Ce que je fais pour ce type de scénarios consiste à mettre un rectangle d'arrière-plan et à appliquer l'effet flou juste pour cela, de sorte que le contenu réel ne soit exempt d'effet, ce qui augmente les performances. Parce que lorsque vous appliquez l'effet à un visuel, tous les enfants suivants ont également l'effet appliqué, ce qui rend la perfection et la lumière devient mal. Essayez le ci-dessous

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


1 commentaires

Merci pour ça. Je viens de passer les deux dernières heures à suivre une question de performance que j'ai réduite à un effet frontalier. Je cherchais une solution de contournement et jeté à travers cela. Fonctionne grand, merci encore!



0
votes

Je ne suis pas sûr mais Essayez de définir le blobradious pour le image.effects à 0 par défaut, il est 5 et voyez si cela vous aidera? XXX


0 commentaires

1
votes

Il y a une certainequalité que vous pouvez utiliser pour résoudre ce problème. La valeur par défaut est biaisée pour la performance. Faites cela:

<DropShadowEffect Color="#FFFD1E1E" ShadowDepth="0" RenderingBias="Quality"/>


0 commentaires