共用方式為


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 可讓開發人員自訂其 UI 的轉譯方式。 這可以是調整影像上的飽和度層級或更複雜的專案,例如將許多效果鏈結在一起,以及建立有趣的應用程式轉換和使用者體驗的動畫效果屬性。 組合效果是作業的圖表,定義如何根據組合介面產生圖形內容。 例如,影像的圖元內容。 效果會套用至樹狀結構中的視覺效果,並可參考現有的表面。

CompositionEffectBrush 的實例會根據指定的效果描述,使用 CompositionEffectFactory 建立。 CompositionEffectFactory使用Microsoft.Graphics.Canvas.Effects命名空間中的Win2D效果描述格式, (WinAppSDK (WinUI 3) / UWP (WinUI 2) )

注意

不支援的效果會標示為效果命名空間的Win2D API 參考中的[NoComposition]。

CompositionEffectBrush 會套用至組合樹狀結構中的 SpriteVisual

CompositionEffectBrush 的來源可以是現有的表面或紋理,或啟用效果鏈結的另一個效果。

CompositionEffectBrush.Properties (繼承自 CompositionObject.Properties) 允許設定或動畫顯示呼叫 Compositor 中指定的可動畫屬性。使用其完整 'EffectName.PropertyName' 名稱建立EffectFactory

效果來源可以與其他 CompositionEffectBrush 實例分開設定,而且屬性可以與其他 CompositionEffectBrush 實例分開產生動畫效果。

宣告效果圖形之後,系統會使用內建著色器來編譯效果。 無法指定自訂著色器。

建立 CompositionEffect

若要建立並套用效果,您需要執行下列步驟:

  1. 建立效果描述。 如需有效的效果類型,請參閱Win2D命名空間Microsoft.Graphics.Canvas.Effects命名空間 (WinAppSDK (WinUI 3) / UWP (WinUI 2) ) 。
  2. 使用 CompositionEffectSourceParameter 實例或其他效果來設定任何效果來源。 指定另一個效果會建立效果鏈結。
  3. 使用 Compositor 建立 CompositionEffectFactory。使用效果描述作為輸入的CreateEffectFactory
  4. 使用 CompositorEffectFactory 建立效果的實例。CreateBrush
  5. 使用 CompositionEffectBrush 設定任何 CompositionEffectSourceParameter。SetSourceParameter 和先前使用 CompositionEffectSourceParameter指定的來源參數名稱。
  6. 使用 Compositor 建立 SpriteVisual 的實例。CreateSpriteVisual
  7. SpriteVisualBrush屬性設定為已建立的效果。
  8. 使用ContainerVisualChildren屬性,將SpriteVisual新增至組合樹狀結構。

屬性

Comment

要與 CompositionObject 建立關聯的字串。

(繼承來源 CompositionObject)
Compositor

用來建立這個CompositionObjectCompositor

(繼承來源 CompositionObject)
DispatcherQueue

取得 CompositionObject 的 DispatcherQueue。

(繼承來源 CompositionObject)
ImplicitAnimations

附加至這個物件的隱含動畫集合。

(繼承來源 CompositionObject)
Properties

CompositionObject相關聯的屬性集合。

(繼承來源 CompositionObject)

方法

Close()

關閉 CompositionObject 並釋放系統資源。

(繼承來源 CompositionObject)
Dispose()

執行與釋放 (Free)、釋放 (Release) 或重設 Unmanaged 資源相關聯之應用程式定義的工作。

(繼承來源 CompositionObject)
GetSourceParameter(String)

擷取與指定 CompositionEffectSourceParameter 名稱相關聯的 CompositionBrush。

PopulatePropertyInfo(String, AnimationPropertyInfo)

定義可以產生動畫效果的屬性。

(繼承來源 CompositionObject)
SetSourceParameter(String, CompositionBrush)

將使用 CompositionEffectSourceParameter 宣告的名稱與效果來源產生關聯。

StartAnimation(String, CompositionAnimation, AnimationController)

使用物件的指定屬性連接動畫,並啟動動畫。

(繼承來源 CompositionObject)
StartAnimation(String, CompositionAnimation)

使用物件的指定屬性連接動畫,並啟動動畫。

(繼承來源 CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

啟動動畫群組。

CompositionObject上的 StartAnimationGroup 方法可讓您啟動CompositionAnimationGroup。 群組中的所有動畫都會在 物件上同時啟動。

(繼承來源 CompositionObject)
StopAnimation(String)

中斷與指定屬性的動畫連線,並停止動畫。

(繼承來源 CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

停止動畫群組。

(繼承來源 CompositionObject)
TryGetAnimationController(String)

傳回在指定屬性上執行的動畫的 AnimationController。

(繼承來源 CompositionObject)

適用於

另請參閱