CompositionEffectBrush Класс

Определение

Рисует spriteVisual с выходными данными эффекта фильтра. Описание эффекта фильтра определяется с помощью класса CompositionEffectFactory .

public ref class CompositionEffectBrush sealed : CompositionBrush
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.LiftedContract, 65536)]
/// [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.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
class CompositionEffectBrush final : CompositionBrush
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.LiftedContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class CompositionEffectBrush : CompositionBrush
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
public sealed class CompositionEffectBrush : CompositionBrush
Public NotInheritable Class CompositionEffectBrush
Inherits CompositionBrush
Наследование
Object Platform::Object IInspectable CompositionObject CompositionBrush CompositionEffectBrush
Атрибуты

Примеры

// 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 (Windows App SDK (WinUI 3) / UWP (WinUI 2)).

Note

Эффекты, которые не поддерживаются, помечены как [NoComposition] в справочнике по API Win2D для пространства имен эффектов.

КомпозицияEffectBrush применяется к spriteVisual в дереве композиции.

Источники в CompositionEffectBrush могут быть существующей поверхностью или текстурой или другим эффектом, обеспечивающим цепочку эффектов.

CompositionEffectBrush.Properties (унаследованный от CompositionObject.Properties) позволяет задавать или анимировать анимируемые свойства, указанные в вызове Compositor. CreateEffectFactory с полным именем EffectName.PropertyName.

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

После объявления графа эффектов система компилирует эффект с помощью встроенных шейдеров. Пользовательские шейдеры нельзя указать.

Создание композицииEffect

Чтобы создать и применить эффект, необходимо выполнить следующие действия:

  1. Создание описания эффекта. См. пространство имен Win2D, Microsoft. Пространство имен Graphics.Canvas.Effects (Windows App SDK (WinUI 3) / UWP (WinUI 2)) для допустимых типов эффектов.
  2. Задайте любые источники эффектов либо экземпляром CompositionEffectSourceParameter , либо другим эффектом. Указание другого эффекта создает цепочку эффектов.
  3. Создайте CompositionEffectFactory с помощью Compositor. CreateEffectFactory с помощью описания эффекта в качестве входных данных.
  4. Создайте экземпляр эффекта с помощью CompositorEffectFactory. CreateBrush.
  5. Задайте любой compositionEffectSourceParameter с помощью CompositionEffectBrush. SetSourceParameter и имя исходного параметра, как ранее указано с помощью compositionEffectSourceParameter.
  6. Создайте экземпляр SpriteVisual с помощью Compositor. CreateSpriteVisual.
  7. Задайте для свойства Brush свойства SpriteVisual созданный эффект.
  8. Добавьте SpriteVisual в дерево композиции с помощью свойства ChildrenконтейнераVisual.

Свойства

Имя Описание
Comment

Строка, связанная с CompositionObject.

(Унаследовано от CompositionObject)
Compositor

Компостор, используемый для создания этого объекта CompositionObject.

(Унаследовано от CompositionObject)
DispatcherQueue

Возвращает диспетчерку для CompositionObject.

(Унаследовано от CompositionObject)
ImplicitAnimations

Коллекция неявных анимаций, присоединенных к этому объекту.

(Унаследовано от CompositionObject)
Properties

Коллекция свойств, связанных с CompositionObject.

(Унаследовано от CompositionObject)

Методы

Имя Описание
Close()

Закрывает ресурсы системы CompositionObject и освобождает системные ресурсы.

(Унаследовано от 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)

Применяется к

См. также раздел