CompositionEffectBrush 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
필터 효과의 출력으로 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를 통해 개발자가 UI를 렌더링하는 방식을 사용자 지정할 수 있습니다. 이는 이미지의 채도 수준을 조정하는 것만큼 간단하거나 다양한 효과를 함께 연결하고 효과 속성에 애니메이션 효과를 적용하여 흥미로운 애플리케이션 전환 및 사용자 환경을 만드는 것과 같이 더 복잡한 작업일 수 있습니다. 컴퍼지션 효과는 컴퍼지션 표면에 따라 그래픽 콘텐츠를 생성하는 방법을 정의하는 연산 그래프입니다. 예를 들어 이미지의 픽셀 콘텐츠입니다. 효과는 트리의 시각적 개체에 적용되며 기존 표면을 참조할 수 있습니다.
CompositionEffectBrush의 instance 지정된 효과 설명을 기반으로 CompositionEffectFactory를 사용하여 만들어집니다. CompositionEffectFactory는 Microsoft.Graphics.Canvas.Effects 네임스페이스(WinAppSDK(WinUI 3) / UWP(WinUI 2))의 Win2D효과 설명 형식을 사용합니다.
참고
지원되지 않는 효과는 효과 네임스페이스에 대한 Win2D API 참조에서 [NoComposition]으로 표시됩니다.
CompositionEffectBrush는 컴퍼지션 트리의 SpriteVisual 에 적용됩니다.
CompositionEffectBrush의 소스는 기존 표면 또는 텍스처이거나 효과 체인을 사용하도록 설정하는 다른 효과일 수 있습니다.
CompositionEffectBrush.Properties(CompositionObject.Properties에서 상속됨)를 사용하면 Compositor 호출에 지정된 애니메이션 가능 속성을 설정하거나 애니메이션 효과를 적용할 수 있습니다. 전체 'EffectName.PropertyName' 이름을 사용하여 CreateEffectFactory 를 만듭니다.
효과 원본은 다른 CompositionEffectBrush 인스턴스와 독립적으로 설정할 수 있으며 속성은 다른 CompositionEffectBrush 인스턴스와 독립적으로 애니메이션 효과를 적용할 수 있습니다.
효과 그래프가 선언되면 시스템은 기본 제공 셰이더를 사용하여 효과를 컴파일합니다. 사용자 지정 셰이더를 지정할 수 없습니다.
CompositionEffect 만들기
효과를 만들고 적용하려면 다음 단계를 수행해야 합니다.
- 효과 설명을 만듭니다. 유효한 효과 유형은 Win2D 네임스페이스, Microsoft.Graphics.Canvas.Effects 네임스페이스(WinAppSDK(WinUI 3) / UWP(WinUI 2))를 참조하세요.
- CompositionEffectSourceParameter의 instance 또는 다른 효과로 효과 원본을 설정합니다. 다른 효과를 지정하면 효과 체인이 만들어집니다.
- Compositor를 사용하여 CompositionEffectFactory를 만듭니다. 효과 설명을 입력으로 사용하여 CreateEffectFactory 를 만듭니다.
- CompositorEffectFactory를 사용하여 효과의 instance 만듭니다.CreateBrush.
- CompositionEffectBrush를 사용하여 CompositionEffectSourceParameter를 설정합니다. SetSourceParameter 및 CompositionEffectSourceParameter를 사용하여 이전에 지정한 원본 매개 변수의 이름입니다.
- Compositor를 사용하여 SpriteVisual의 instance 만듭니다.CreateSpriteVisual.
- SpriteVisual의 Brush 속성을 만든 효과로 설정합니다.
- ContainerVisual의 Children 속성을 사용하여 SpriteVisual을 컴퍼지션 트리에 추가합니다.
속성
Comment |
CompositionObject와 연결할 문자열입니다. (다음에서 상속됨 CompositionObject) |
Compositor |
이 CompositionObject를 만드는 데 사용되는 Compositor입니다. (다음에서 상속됨 CompositionObject) |
DispatcherQueue |
CompositionObject에 대한 DispatcherQueue를 가져옵니다. (다음에서 상속됨 CompositionObject) |
ImplicitAnimations |
이 개체에 연결된 암시적 애니메이션의 컬렉션입니다. (다음에서 상속됨 CompositionObject) |
Properties |
CompositionObject와 연결된 속성의 컬렉션입니다. (다음에서 상속됨 CompositionObject) |