Подтвердить что ты не робот

WPF DropShadowEffect, вызывающий размытость

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

Я не видел, чтобы кто-то еще жаловался на это, поэтому я склонен думать, что есть что-то, что я делаю неправильно.

Использование образца (случайное размытие содержимого):

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

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

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

Любые идеи?

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

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