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
- Наследование
- Атрибуты
Примеры
// 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
Чтобы создать и применить эффект, необходимо выполнить следующие действия:
- Создание описания эффекта. См. пространство имен Win2D, Microsoft. Пространство имен Graphics.Canvas.Effects (Windows App SDK (WinUI 3) / UWP (WinUI 2)) для допустимых типов эффектов.
- Задайте любые источники эффектов либо экземпляром CompositionEffectSourceParameter , либо другим эффектом. Указание другого эффекта создает цепочку эффектов.
- Создайте CompositionEffectFactory с помощью Compositor. CreateEffectFactory с помощью описания эффекта в качестве входных данных.
- Создайте экземпляр эффекта с помощью CompositorEffectFactory. CreateBrush.
- Задайте любой compositionEffectSourceParameter с помощью CompositionEffectBrush. SetSourceParameter и имя исходного параметра, как ранее указано с помощью compositionEffectSourceParameter.
- Создайте экземпляр SpriteVisual с помощью Compositor. CreateSpriteVisual.
- Задайте для свойства Brush свойства SpriteVisual созданный эффект.
- Добавьте 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) |