WPF DropShadowEffect вызывает размытость

Я заметил, что применение DropShadowEffect к UIElement спорадически приводит к тому, что содержимое UIElement немного размывается. Это довольно неприятный эффект: он может заставить фотографию выглядеть не в фокусе или хуже - сделать весь "всплывающий" регион совершенно неразборчивым.

польза образца (размывает содержание на random):

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

но удаление DropShadowEffect очищает его:

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

какие идеи?

EDIT (добавлен скриншот):

alt текст http://signmgmt.com/eg/dropshadowblur.png

3 ответов


то, что я делаю для такого рода сценариев, ставит прямоугольник фона и применяет эффект размытия только для этого, так что реальный контент будет свободен от эффекта, что, в свою очередь, увеличивает производительность. Потому что, когда вы применяете эффект к визуальному, все последующие дети также получают эффект, который делает perf и выглядит плохо. Попробуйте ниже

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

существует RendingQuality вы можете использовать для устранения этой проблемы. По умолчанию используется смещение производительности. Просто сделайте так:

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

Я не уверен, но попробуйте установить BlurRadious на Image.Effects до 0 по умолчанию это 5 и посмотреть, поможет ли это?

<Image.Effect>
    <DropShadowEffect BlurRadius="0"/>
</Image.Effect>