Share via


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
상속
Object Platform::Object IInspectable CompositionObject CompositionBrush CompositionEffectBrush
특성

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를 통해 개발자가 UI를 렌더링하는 방식을 사용자 지정할 수 있습니다. 이는 이미지의 채도 수준을 조정하는 것만큼 간단하거나 다양한 효과를 함께 연결하고 효과 속성에 애니메이션 효과를 적용하여 흥미로운 애플리케이션 전환 및 사용자 환경을 만드는 것과 같이 더 복잡한 작업일 수 있습니다. 컴퍼지션 효과는 컴퍼지션 표면에 따라 그래픽 콘텐츠를 생성하는 방법을 정의하는 연산 그래프입니다. 예를 들어 이미지의 픽셀 콘텐츠입니다. 효과는 트리의 시각적 개체에 적용되며 기존 표면을 참조할 수 있습니다.

CompositionEffectBrush의 instance 지정된 효과 설명을 기반으로 CompositionEffectFactory를 사용하여 만들어집니다. CompositionEffectFactoryMicrosoft.Graphics.Canvas.Effects 네임스페이스의 Win2D 효과 설명 형식을 사용합니다.

참고

지원되지 않는 효과는 효과 네임스페이스에 대한 Win2D API 참조에서 [NoComposition]으로 표시됩니다.

CompositionEffectBrush는 컴퍼지션 트리의 SpriteVisual 에 적용됩니다.

CompositionEffectBrush의 소스는 기존 표면 또는 텍스처이거나 효과 체인을 사용하도록 설정하는 다른 효과일 수 있습니다.

CompositionEffectBrush.Properties(CompositionObject.Properties에서 상속됨)를 사용하면 Compositor 호출에 지정된 애니메이션 가능 속성을 설정하거나 애니메이션 효과를 적용할 수 있습니다. 전체 'EffectName.PropertyName' 이름을 사용하여 CreateEffectFactory 를 만듭니다.

효과 원본은 다른 CompositionEffectBrush 인스턴스와 독립적으로 설정할 수 있으며 속성은 다른 CompositionEffectBrush 인스턴스와 독립적으로 애니메이션 효과를 적용할 수 있습니다.

효과 그래프가 선언되면 시스템은 기본 제공 셰이더를 사용하여 효과를 컴파일합니다. 사용자 지정 셰이더를 지정할 수 없습니다.

CompositionEffect 만들기

효과를 만들고 적용하려면 다음 단계를 수행해야 합니다.

  1. 효과 설명을 만듭니다. 유효한 효과 유형은 Win2D 네임스페이 스 Microsoft.Graphics.Canvas.Effects를 참조하세요.
  2. CompositionEffectSourceParameter의 instance 또는 다른 효과로 효과 원본을 설정합니다. 다른 효과를 지정하면 효과 체인이 만들어집니다.
  3. Compositor를 사용하여 CompositionEffectFactory를 만듭니다. 효과 설명을 입력으로 사용하여 CreateEffectFactory 를 만듭니다.
  4. CompositorEffectFactory를 사용하여 효과의 instance 만듭니다.CreateBrush.
  5. CompositionEffectBrush를 사용하여 CompositionEffectSourceParameter를 설정합니다. SetSourceParameterCompositionEffectSourceParameter를 사용하여 이전에 지정한 원본 매개 변수의 이름입니다.
  6. Compositor를 사용하여 SpriteVisual의 instance 만듭니다.CreateSpriteVisual.
  7. SpriteVisualBrush 속성을 만든 효과로 설정합니다.
  8. ContainerVisualChildren 속성을 사용하여 SpriteVisual을 컴퍼지션 트리에 추가합니다.

속성

Comment

CompositionObject와 연결할 문자열입니다.

(다음에서 상속됨 CompositionObject)
Compositor

CompositionObject를 만드는 데 사용되는 Compositor입니다.

(다음에서 상속됨 CompositionObject)
Dispatcher

CompositionObject의 디스패처입니다.

(다음에서 상속됨 CompositionObject)
DispatcherQueue

CompostionObject에 대한 DispatcherQueue 를 가져옵니다.

(다음에서 상속됨 CompositionObject)
ImplicitAnimations

이 개체에 연결된 암시적 애니메이션의 컬렉션입니다.

(다음에서 상속됨 CompositionObject)
Properties

CompositionObject와 연결된 속성의 컬렉션입니다.

(다음에서 상속됨 CompositionObject)

메서드

Close()

CompositionObject를 닫고 시스템 리소스를 해제합니다.

(다음에서 상속됨 CompositionObject)
ConnectAnimation(String, CompositionAnimation)

연결 및 애니메이션.

(다음에서 상속됨 CompositionObject)
DisconnectAnimation(String)

애니메이션의 연결을 끊습니다.

(다음에서 상속됨 CompositionObject)
Dispose()

관리되지 않는 리소스의 확보, 해제 또는 다시 설정과 관련된 애플리케이션 정의 작업을 수행합니다.

(다음에서 상속됨 CompositionObject)
GetSourceParameter(String)

지정된 CompositionEffectSourceParameter 이름과 연결된 CompositionBrush를 검색합니다.

PopulatePropertyInfo(String, AnimationPropertyInfo)

애니메이션 효과를 주는 속성을 정의합니다.

(다음에서 상속됨 CompositionObject)
SetSourceParameter(String, CompositionBrush)

CompositionEffectSourceParameter를 사용하여 선언된 이름을 효과 원본에 연결합니다.

StartAnimation(String, CompositionAnimation)

개체의 지정된 속성에 애니메이션을 연결하고 애니메이션을 시작합니다.

(다음에서 상속됨 CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

개체의 지정된 속성에 애니메이션을 연결하고 애니메이션을 시작합니다.

(다음에서 상속됨 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

애니메이션 그룹을 시작합니다.

CompositionObject의 StartAnimationGroup 메서드를 사용하면 CompositionAnimationGroup을 시작할 수 있습니다. 그룹의 모든 애니메이션은 개체에서 동시에 시작됩니다.

(다음에서 상속됨 CompositionObject)
StopAnimation(String)

지정된 속성에서 애니메이션의 연결을 끊고 애니메이션을 중지합니다.

(다음에서 상속됨 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

애니메이션 그룹을 중지합니다.

(다음에서 상속됨 CompositionObject)
TryGetAnimationController(String)

지정된 속성에서 실행되는 애니메이션에 대한 AnimationController를 반환합니다.

(다음에서 상속됨 CompositionObject)

적용 대상

추가 정보