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 的實例會根據指定的效果描述,使用 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
若要建立並套用效果,您需要執行下列步驟:
- 建立效果描述。 如需有效的效果類型,請參閱Win2D命名空間Microsoft.Graphics.Canvas.Effects命名空間 (WinAppSDK (WinUI 3) / UWP (WinUI 2) ) 。
- 使用 CompositionEffectSourceParameter 實例或其他效果來設定任何效果來源。 指定另一個效果會建立效果鏈結。
- 使用 Compositor 建立 CompositionEffectFactory。使用效果描述作為輸入的CreateEffectFactory 。
- 使用 CompositorEffectFactory 建立效果的實例。CreateBrush。
- 使用 CompositionEffectBrush 設定任何 CompositionEffectSourceParameter。SetSourceParameter 和先前使用 CompositionEffectSourceParameter指定的來源參數名稱。
- 使用 Compositor 建立 SpriteVisual 的實例。CreateSpriteVisual。
- 將SpriteVisual的Brush屬性設定為已建立的效果。
- 使用ContainerVisual的Children屬性,將SpriteVisual新增至組合樹狀結構。
屬性
Comment |
要與 CompositionObject 建立關聯的字串。 (繼承來源 CompositionObject) |
Compositor |
用來建立這個CompositionObject的Compositor。 (繼承來源 CompositionObject) |
DispatcherQueue |
取得 CompositionObject 的 DispatcherQueue。 (繼承來源 CompositionObject) |
ImplicitAnimations |
附加至這個物件的隱含動畫集合。 (繼承來源 CompositionObject) |
Properties |
與 CompositionObject相關聯的屬性集合。 (繼承來源 CompositionObject) |