Как применить несколько эффектов к одному и тому же элементу

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


person Firoz    schedule 26.11.2009    source источник


Ответы (3)


См. раздел Использование эффектов в WPF ( Часть 2) Грега Шехтера, где можно просто вложить Decorators как Border и поставить разные Effect на каждый.

person David Hollinshead    schedule 01.12.2009
comment
Хороший обходной путь для еще одного недостатка WPF. Хотел бы я знать, что они думали, когда решили не реализовывать EffectGroup... - person stmax; 15.02.2012
comment
Простой, но эффективный. - person Koert van Kleef; 02.07.2014
comment
Проблема в том, что для сложных иерархий это применяет эффект к неправильным элементам — даже просто используя Grid, независимо от того, помещаете ли вы его над элементом управления, внутри элемента управления или в качестве брата элемента управления, ни один из них не дает того же самого. результатом применения эффекта непосредственно к рассматриваемому элементу управления. - person BrainSlugs83; 23.04.2020

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

Затем примените эффекты для обоих элементов как таковые:

<StackPanel>
    <MediaElement Name="myMedia" Source="Fairytale Dream.wmv" >
        <MediaElement.Effect>
            <ShaderEffectLibrary:BloomEffect />
        </MediaElement.Effect>
    </MediaElement>
    <StackPanel.Effect>
        <ShaderEffectLibrary:ZoomBlurEffect />
    </StackPanel.Effect>
</StackPanel>
person Ashok Gowtham    schedule 02.02.2012
comment
По сути, это тот же подход, который был приписан Грегу Шехтеру и принят в качестве ответа. Вы можете уточнить, чем это отличается, и/или сослаться на другой ответ, поскольку он очень похож. - person Koert van Kleef; 02.07.2014

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

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

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

person Sasikumar D.R.    schedule 26.11.2009
comment
Не нам решать, чего хочет ОП, тем более что он четко заявляет, чего пытается достичь. - person Koert van Kleef; 02.07.2014