CompositionEffectBrush Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Закрашивает SpriteVisual выходными данными эффекта фильтра. Описание эффекта фильтра определяется с помощью класса CompositionEffectFactory .
public ref class CompositionEffectBrush sealed : CompositionBrush
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 131072)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CompositionEffectBrush final : CompositionBrush
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 131072)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CompositionEffectBrush : CompositionBrush
Public NotInheritable Class CompositionEffectBrush
Inherits CompositionBrush
- Наследование
- Атрибуты
Требования к Windows
Семейство устройств |
Windows 10 (появилось в 10.0.10586.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v2.0)
|
Примеры
// Create an effect description
GaussianBlurEffect blurEffect = new GaussianBlurEffect()
{
Name = "Blur",
BlurAmount = 1.0f,
BorderMode = EffectBorderMode.Hard,
Optimization = EffectOptimization.Balanced
};
blurEffect.Source = new CompositionEffectSourceParameter("source");
CompositionEffectFactory blurEffectFactory = _compositor.CreateEffectFactory(blurEffect);
CompositionEffectBrush blurBrush = blurEffectFactory.CreateBrush();
// Create a BackdropBrush and bind it to the EffectSourceParameter “source”
CompositionBackdropBrush backdropBrush = _compositor.CreateBackdropBrush();
blurBrush.SetSourceParameter("source", backdropBrush);
// The SpriteVisual to apply the blur BackdropBrush to
// This will cause everything behind this SpriteVisual to be blurred
SpriteVisual blurSprite = _compositor.CreateSpriteVisual();
blurSprite.Brush = blurBrush;
// Set blurSprite as a child visual of a XAML element
ElementCompositionPreview.SetElementChildVisual(blurArea, blurSprite);
Комментарии
API эффектов позволяют разработчикам настраивать отрисовку пользовательского интерфейса. Это может быть что-то простое, как настройка уровней насыщенности изображения или что-то более сложное, например связывание многочисленных эффектов вместе и анимация свойств эффекта для создания интересных переходов приложений и взаимодействия с пользователем. Эффект композиции — это граф операций, определяющий способ создания графического содержимого на основе поверхностей композиции. Например, содержимое пикселей изображений. Эффекты применяются к визуальным элементам в дереве и могут ссылаться на существующие поверхности.
Экземпляр CompositionEffectBrush создается с помощью CompositionEffectFactory на основе указанного описания эффекта. CompositionEffectFactory использует формат описания эффекта Win2D в пространстве имен Microsoft.Graphics.Canvas.Effects .
Примечание
Эффекты, которые не поддерживаются, помечены как [NoComposition] в справочнике по API Win2D для пространства имен эффектов.
CompositionEffectBrush применяется к SpriteVisual в дереве композиции.
Источником для CompositionEffectBrush может быть существующая поверхность или текстура или другой эффект, обеспечивающий цепочки эффектов.
CompositionEffectBrush.Properties (наследуется от CompositionObject.Properties) позволяет задавать или анимировать анимируемые свойства, указанные при вызове Compositor. CreateEffectFactory с полным именем EffectName.PropertyName.
Источники эффектов можно задавать независимо от других экземпляров CompositionEffectBrush, а свойства можно анимировать независимо от других экземпляров CompositionEffectBrush.
После объявления графа эффектов система компилирует эффект с помощью встроенных шейдеров. Пользовательские шейдеры не могут быть указаны.
Создание CompositionEffect
Чтобы создать и применить эффект, необходимо выполнить следующие действия.
- Создайте описание эффекта. Сведения о допустимых типах эффектов см. в разделе Пространство имен Win2DMicrosoft.Graphics.Canvas.Effects.
- Задайте любые источники эффектов с помощью экземпляра CompositionEffectSourceParameter или другого эффекта. При указании другого эффекта создается цепочка эффектов.
- Создайте CompositionEffectFactory с помощью Compositor. CreateEffectFactory с описанием эффекта в качестве входных данных.
- Создайте экземпляр эффекта с помощью CompositorEffectFactory. CreateBrush.
- Задайте любой объект CompositionEffectSourceParameter с помощью CompositionEffectBrush. SetSourceParameter и имя параметра источника, указанное ранее с помощью CompositionEffectSourceParameter.
- Создайте экземпляр SpriteVisual с помощью Compositor. CreateSpriteVisual.
- Присвойте свойству Brush объекта SpriteVisual значение созданного эффекта.
- Добавьте SpriteVisual в дерево композиции с помощью свойства Childrenобъекта ContainerVisual.
Свойства
Comment |
Строка, связанная с CompositionObject. (Унаследовано от CompositionObject) |
Compositor |
Составитель, используемый для создания этого объекта CompositionObject. (Унаследовано от CompositionObject) |
Dispatcher |
Диспетчер для CompositionObject. (Унаследовано от CompositionObject) |
DispatcherQueue |
Возвращает dispatcherQueue для объекта CompostionObject. (Унаследовано от CompositionObject) |
ImplicitAnimations |
Коллекция неявных анимаций, присоединенных к этому объекту. (Унаследовано от CompositionObject) |
Properties |
Коллекция свойств, связанных с CompositionObject. (Унаследовано от CompositionObject) |
Методы
Close() |
Закрывает объект CompositionObject и освобождает системные ресурсы. (Унаследовано от CompositionObject) |
ConnectAnimation(String, CompositionAnimation) |
Соединения и анимация. (Унаследовано от CompositionObject) |
DisconnectAnimation(String) |
Отключает анимацию. (Унаследовано от CompositionObject) |
Dispose() |
Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов. (Унаследовано от CompositionObject) |
GetSourceParameter(String) |
Извлекает объект CompositionBrush, связанный с заданным именем CompositionEffectSourceParameter . |
PopulatePropertyInfo(String, AnimationPropertyInfo) |
Определяет свойство, которое можно анимировать. (Унаследовано от CompositionObject) |
SetSourceParameter(String, CompositionBrush) |
Связывает имя, объявленное с помощью CompositionEffectSourceParameter , с источником эффекта. |
StartAnimation(String, CompositionAnimation, AnimationController) |
Подключает анимацию к указанному свойству объекта и запускает анимацию. (Унаследовано от CompositionObject) |
StartAnimation(String, CompositionAnimation) |
Подключает анимацию к указанному свойству объекта и запускает анимацию. (Унаследовано от CompositionObject) |
StartAnimationGroup(ICompositionAnimationBase) |
Запускает группу анимации. Метод StartAnimationGroup в CompositionObject позволяет запустить CompositionAnimationGroup. Все анимации в группе будут запущены одновременно для объекта . (Унаследовано от CompositionObject) |
StopAnimation(String) |
Отключает анимацию от указанного свойства и останавливает анимацию. (Унаследовано от CompositionObject) |
StopAnimationGroup(ICompositionAnimationBase) |
Останавливает группу анимации. (Унаследовано от CompositionObject) |
TryGetAnimationController(String) |
Возвращает AnimationController для анимации, выполняемой с указанным свойством. (Унаследовано от CompositionObject) |