Как применить множественный эффект к одному элементу - PullRequest
10 голосов
/ 26 ноября 2009

Как я могу установить несколько эффектов, таких как (тень и размытие) на тот же элемент.

Ответы [ 3 ]

12 голосов
/ 02 декабря 2009

Я только что в эту минуту сделал это. Благодарю Грега Шехтера за идею.

Вы можете вкладывать Декораторы как Границу и накладывать на них различные Эффекты. Я еще не пробовал с большим количеством эффектов, но пока производительность кажется хорошей.

С уважением, Дэвид

5 голосов
/ 02 февраля 2012

Это может быть слишком поздно, но помогает многим людям, приходящим за ответом.

Можно достичь нескольких эффектов.

Просто заключите UIElement в другой новый UIElement (любой элемент по этому вопросу, например, панель стека). Затем примените эффекты для обоих элементов.

Применено два эффекта!

<StackPanel>
    <MediaElement Name="myMedia" Source="Fairytale Dream.wmv" >
        <MediaElement.Effect>
            <ShaderEffectLibrary:BloomEffect />
        </MediaElement.Effect>
    </MediaElement>
    <StackPanel.Effect>
        <ShaderEffectLibrary:ZoomBlurEffect />
    </StackPanel.Effect>
</StackPanel>
0 голосов
/ 27 ноября 2009

Я думаю, что здесь нет необходимости комбинировать эффекты.

Один из этих эффектов поможет вам симулировать другие эффекты. как в случае эффекта DropShadow, вы можете использовать BlurRadius для эффекта размытия и ShadowDepth для тени ..

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

...