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 のインスタンスは、指定した効果の説明に基づいて CompositionEffectFactory を使用して作成されます。 CompositionEffectFactory は、Microsoft.Graphics.Canvas.Effects 名前空間の Win2D 効果の説明形式を使用します。

注意

サポートされていない効果は、効果名前空間の Win2D API リファレンス[NoComposition] としてマークされます。

CompositionEffectBrush は、コンポジション ツリーの SpriteVisual に適用されます。

CompositionEffectBrush へのソースには、既存のサーフェスまたはテクスチャ、またはエフェクト チェーンを有効にする別の効果を指定できます。

CompositionEffectBrush.Properties (CompositionObject.Properties から継承) を使用すると、コンポジターの呼び出しで指定されたアニメーション化可能なプロパティを設定またはアニメーション化できます。完全な 'EffectName.PropertyName' 名を使用した CreateEffectFactory

効果ソースは他の CompositionEffectBrush インスタンスとは独立して設定でき、プロパティは他の CompositionEffectBrush インスタンスとは別にアニメーション化できます。

効果グラフが宣言されると、システムは組み込みのシェーダーを使用して効果をコンパイルします。 カスタム シェーダーを指定できません。

CompositionEffect の作成

効果を作成して適用するには、次の手順を実行する必要があります。

  1. 効果の説明を作成します。 有効な効果の種類については、 Win2D 名前空間 Microsoft.Graphics.Canvas.Effects を参照してください。
  2. CompositionEffectSourceParameter のインスタンスまたは別の効果を使用して、効果ソースを設定します。 別の効果を指定すると、効果チェーンが作成されます。
  3. コンポジターを使用して CompositionEffectFactory を作成します。効果の説明を入力として使用する CreateEffectFactory
  4. CompositorEffectFactory を使用して、効果のインスタンスを作成します。CreateBrush
  5. CompositionEffectBrush を使用して、CompositionEffectSourceParameter を設定します。SetSourceParameter と、 CompositionEffectSourceParameter を使用して以前に指定したソース パラメーターの名前。
  6. Compositor を使用して SpriteVisual のインスタンスを作成します。CreateSpriteVisual
  7. SpriteVisualBrush プロパティを作成した効果に設定します。
  8. ContainerVisualChildren プロパティを使用して、SpriteVisual をコンポジション ツリーに追加します。

プロパティ

Comment

CompositionObject に関連付ける文字列。

(継承元 CompositionObject)
Compositor

この CompositionObject の作成に使用されるコンポジター

(継承元 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)

適用対象

こちらもご覧ください