Как можно создать собственный графический эффект в WPF? - PullRequest
4 голосов
/ 24 апреля 2011

В моем приложении есть объект Image, который пользователь может перетаскивать.Объект отображает частично прозрачное изображение, поэтому через него можно видеть фон окна (который сам по себе является растровым изображением).

Я хочу добавить графический эффект к этому объекту.Предположим, что у меня уже есть алгоритм для этого эффекта - это не проблема.Вопрос в том, как включить этот алгоритм в WPF.

Поэтому я попытался посмотреть, как работает DropShadowEffect, но реализация, отображаемая в Reflector, пуста.Я также попытался посмотреть, какие методы из абстрактных классов Effect и ShaderEffect я должен переопределить, и, похоже, нет ничего связанного с фактическим рендерингом эффекта.собственный эффект?

Ответы [ 2 ]

3 голосов
/ 24 апреля 2011

Лучший и самый быстрый способ - использовать пиксельные шейдеры (думаю, поддерживается начиная с WPF 3.5 SP1).Для этого потребуются некоторые знания языка шейдера ( HLSL ), однако: -)

Вот учебное пособие: Как мне: создать пользовательские эффекты пиксельных шейдеров для WPF

библиотека в codeplex: Библиотека эффектов пиксельных шейдеров Windows Presentation Foundation

статья с информацией .NET 4 (включая поддержку Sliverlight, в которой она есть): SilverShader- Введение в пиксельные шейдеры Silverlight и WPF

1 голос
/ 24 апреля 2011

Очень крутой инструмент (и ресурс) - Shazzam , он поможет вам создавать эффекты и содержит хороший учебник.

...