LayerVisual 類別

定義

其子系扁平化成單一層的 ContainerVisual。

public ref class LayerVisual sealed : ContainerVisual
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class LayerVisual final : ContainerVisual
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class LayerVisual : ContainerVisual
Public NotInheritable Class LayerVisual
Inherits ContainerVisual
繼承
Object Platform::Object IInspectable CompositionObject Visual ContainerVisual LayerVisual
屬性

Windows 需求

裝置系列
Windows 10 Anniversary Edition (已於 10.0.14393.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v3.0 引進)

範例

此範例示範如何將 GaussianBlurEffect 套用至 LayerVisual。

private async void InitComposition()
{
  Compositor compositor = ElementCompositionPreview.GetElementVisual(MyGrid).Compositor;

  //Create LayerVisual
  LayerVisual layerVisual = compositor.CreateLayerVisual();
  layerVisual.Size = new Vector2(900,900);

  //Create SpriteVisuals to use as LayerVisual child
  SpriteVisual sv1 = compositor.CreateSpriteVisual();
  sv1.Brush = compositor.CreateColorBrush(Windows.UI.Colors.Blue);
  sv1.Size = new Vector2(300, 300);
  sv1.Offset = new Vector3(200, 200, 0);

  SpriteVisual sv2 = compositor.CreateSpriteVisual();
  sv2.Brush = compositor.CreateColorBrush(Colors.Red);
  sv2.Size = new Vector2(300, 300);
  sv2.Offset = new Vector3(400, 400, 0);

  //Add children to the LayerVisual
  layerVisual.Children.InsertAtTop(sv1);
  layerVisual.Children.InsertAtTop(sv2);

  //Create Effect
  var graphicsEffect = new GaussianBlurEffect
  {
     Name = "Blur",
     Source = new CompositionEffectSourceParameter("Backdrop"),
     BlurAmount = 10.0f,
     BorderMode = EffectBorderMode.Hard,
     Optimization = EffectOptimization.Balanced
  };

  var blurEffectFactory = compositor.CreateEffectFactory(graphicsEffect,
      new[] { "Blur.BlurAmount" });
  var blurBrush = blurEffectFactory.CreateBrush();

  //Apply Effect
  layerVisual.Effect = blurBrush;

  ElementCompositionPreview.SetElementChildVisual(MyGrid, layerVisual);
}        

結果看起來就像這樣。

已套用模糊效果的紅色正方形重迭藍色方塊。

此範例示範如何將 DropShadow 套用至 LayerVisual。

private async void InitComposition()
{
  Compositor compositor = ElementCompositionPreview.GetElementVisual(MyGrid).Compositor;

  //Create LayerVisual
  LayerVisual layerVisual = compositor.CreateLayerVisual();
  layerVisual.Size = new Vector2(900, 900);

  //Create SpriteVisuals to use as LayerVisual child
  SpriteVisual sv1 = compositor.CreateSpriteVisual();
  sv1.Brush = compositor.CreateColorBrush(Windows.UI.Colors.Blue);
  sv1.Size = new Vector2(300, 300);
  sv1.Offset = new Vector3(200, 200, 0);

  SpriteVisual sv2 = compositor.CreateSpriteVisual();
  sv2.Brush = compositor.CreateColorBrush(Colors.Red);
  sv2.Size = new Vector2(300, 300);
  sv2.Offset = new Vector3(400, 400, 0);

  //Add children to the LayerVisual
  layerVisual.Children.InsertAtTop(sv1);
  layerVisual.Children.InsertAtTop(sv2);

  //Create DropShadow
  DropShadow shadow = compositor.CreateDropShadow();
  shadow.Color = Colors.DarkSlateGray;
  shadow.Offset = new Vector3(40, 40, 0);
  shadow.BlurRadius = 9;
  shadow.SourcePolicy = CompositionDropShadowSourcePolicy.InheritFromVisualContent;

  //Associate Shadow with LayerVisual
  layerVisual.Shadow = shadow;

  ElementCompositionPreview.SetElementChildVisual(MyGrid, layerVisual);
}         

結果看起來就像這樣。

紅色方塊會重迭藍色方塊,並套用陰影至每個方形。

備註

LayerVisual 是一種特殊的輸入類型,可用來選取視覺效果的樹狀結構。 使用 LayerVisual 隱含指定樹狀結構輸入。 當 EffectBrush 設定為 LayerVisual 的 Effect 屬性時,EffectBrush 會自動使用位於 LayerVisual 的子樹做為輸入。 LayerVisual 的隱含輸入適用于效果,如下所示:

  • 如果效果有一個輸入,EffectBrush 會使用以 LayerVisual 作為輸入的子樹。
  • 如果效果有 2 個輸入,EffectBrush 的第一個未系結輸入會使用以 LayerVisual 作為輸入的子樹。
  • 系統不允許具有 0 個輸入的效果,或所有系結至 SurfaceBrush 之輸入的效果設定為 LayerVisual 效果屬性上的 EffectBrush。 這會擲回例外狀況。

版本歷程記錄

Windows 版本 SDK 版本 新增值
1709 16299 陰影

屬性

AnchorPoint

要放置在視覺效果位移之視覺效果上的點。 根據視覺效果的大小,值會正規化。 可產生動畫效果。

(繼承來源 Visual)
BackfaceVisibility

指定在 3D 轉換期間是否應該顯示視覺效果的背面。

(繼承來源 Visual)
BorderMode

指定如何撰寫與視覺效果相關聯之點陣圖和剪輯的邊緣,或與此視覺效果根目錄之子樹狀結構中的所有視覺效果。 在父視覺效果上設定 BorderMode 會影響子樹中的所有子系視覺效果,而且可以在每個子視覺效果選擇性地關閉。

(繼承來源 Visual)
CenterPoint

發生旋轉或縮放的點。 可產生動畫效果

(繼承來源 Visual)
Children

ContainerVisual的子系。

(繼承來源 ContainerVisual)
Clip

指定視覺效果的裁剪區域。 轉譯視覺效果時,只會顯示落在裁剪區域內的視覺效果部分,而任何延伸在裁剪區域外部的內容都會裁剪 (,而不會顯示) 。

(繼承來源 Visual)
Comment

要與 CompositionObject 建立關聯的字串。

(繼承來源 CompositionObject)
CompositeMode

指定視覺效果的點陣圖如何與螢幕混合。

(繼承來源 Visual)
Compositor

用來建立這個CompositionObjectCompositor

(繼承來源 CompositionObject)
Dispatcher

CompositionObject的發送器。

(繼承來源 CompositionObject)
DispatcherQueue

取得 CompostionObject 的 DispatcherQueue

(繼承來源 CompositionObject)
Effect

取得或設定要套用至 LayerVisual子系之扁平化標記法的效果。

ImplicitAnimations

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

(繼承來源 CompositionObject)
IsHitTestVisible

取得或設定值,這個值表示這個視覺效果根目錄的視覺化子樹狀結構是否參與點擊測試。

(繼承來源 Visual)
IsPixelSnappingEnabled

取得或設定值,這個值表示組合引擎是否對齊轉譯的視覺效果與圖元界限。

(繼承來源 Visual)
IsVisible

指出視覺效果及其子視覺效果的整個子樹是否可見。

(繼承來源 Visual)
Offset

視覺效果相對於其父系的位移,或根視覺效果的位移相對於裝載視覺效果之視窗左上角的位移。 可產生動畫效果。

(繼承來源 Visual)
Opacity

視覺效果的不透明度。 可產生動畫效果。

不透明度屬性會判斷 Visual 的透明度,如果有任何,則為 0 到 1 的值。 0 完全透明,1 則為完全不透明。 具有 Opacity 屬性為 0 的視覺效果仍存在於樹狀結構中。 就像 Visual 上的其他屬性一樣,Opacity 可以使用 Windows、UI 產生動畫效果。組合動畫系統。

(繼承來源 Visual)
Orientation

四元數,描述將在 3D 空間中套用至視覺效果的方向和旋轉。 可產生動畫效果。

(繼承來源 Visual)
Parent

視覺物件的父代。

(繼承來源 Visual)
ParentForTransform

指定這個視覺效果所組成之座標系統的視覺效果。

(繼承來源 Visual)
Properties

CompositionObject相關聯的屬性集合。

(繼承來源 CompositionObject)
RelativeOffsetAdjustment

指定視覺效果相對於其父視覺效果大小的位移。

(繼承來源 Visual)
RelativeSizeAdjustment

取得或設定視覺效果與其父視覺效果大小相關的視覺效果大小。

(繼承來源 Visual)
RotationAngle

以弧度為單位的視覺效果旋轉角度。 可產生動畫效果。

(繼承來源 Visual)
RotationAngleInDegrees

視覺效果的旋轉角度,以度為單位。 可產生動畫效果。

(繼承來源 Visual)
RotationAxis

要繞著視覺效果旋轉的軸。 可產生動畫效果。

(繼承來源 Visual)
Scale

要套用至視覺效果的縮放比例。

(繼承來源 Visual)
Shadow

取得或設定要套用至 LayerVisual子系之扁平化表示的陰影。

Size

視覺效果的寬度和高度。 可產生動畫效果。

(繼承來源 Visual)
TransformMatrix

要套用至視覺效果的轉換矩陣。 可產生動畫效果。

(繼承來源 Visual)

方法

Close()

關閉 CompositionObject 並釋放系統資源。

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

連接和動畫。

(繼承來源 CompositionObject)
DisconnectAnimation(String)

中斷動畫的連線。

(繼承來源 CompositionObject)
Dispose()

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

(繼承來源 CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

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

(繼承來源 CompositionObject)
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)

適用於

另請參閱