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
Ответы
Ответ 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>