LayerVisual 類別

定義

一個 ContainerVisual 的子節點被壓扁成單一層。

public ref class LayerVisual sealed : ContainerVisual
/// [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 LayerVisual final : ContainerVisual
/// [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 LayerVisual final : ContainerVisual
[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 LayerVisual : ContainerVisual
[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 LayerVisual : ContainerVisual
Public NotInheritable Class LayerVisual
Inherits ContainerVisual
繼承
Object Platform::Object IInspectable CompositionObject Visual ContainerVisual LayerVisual
屬性

範例

將效果套用到 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);
}        

加入 投影

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 的子樹作為輸入。
  • 如果效果有兩個輸入,EffectBrush 的第一個無界輸入會使用根於 LayerVisual 的子樹作為輸入。
  • 系統不允許將輸入為 0 的效果或所有輸入都被 SurfaceBrush 限制的效果設為 LayerVisual 的 Effect 屬性中的 EffectBrush。 這會產生例外。

屬性

名稱 Description
AnchorPoint

視覺圖上的點要定位在視覺的偏移位置。 值會根據視覺大小進行正規化。 可被模仿。

(繼承來源 Visual)
BackfaceVisibility

指定視覺圖的背面在 3D 轉換過程中是否應該可見。

(繼承來源 Visual)
BorderMode

規定如何組合與視覺化相關的點陣圖與剪輯邊緣,或是根植於該視覺化的子樹中所有視覺化的邊緣。 將 BorderMode 設於父視覺化,會影響子樹中所有子節點的視覺效果,且可在每個子視覺上選擇性關閉。

(繼承來源 Visual)
CenterPoint

就是旋轉或縮放發生的點。 可複製

(繼承來源 Visual)
Children

ContainerVisual 的孩子們。

(繼承來源 ContainerVisual)
Clip

指定視覺的裁剪區域。 當視覺呈現時,只會顯示落在裁剪區域內的部分,而超出裁剪區域的內容則會被裁剪(也就是不顯示)。

(繼承來源 Visual)
Comment

一個用來關聯 CompositionObject 的字串。

(繼承來源 CompositionObject)
CompositeMode

指定視覺點陣圖如何與螢幕融合。

(繼承來源 Visual)
Compositor

用於建立此 CompositionObject 的合成

(繼承來源 CompositionObject)
DispatcherQueue

取得 CompositionObject 的 DispatcherQueue。

(繼承來源 CompositionObject)
Effect

該效果將應用於 LayerVisual 子節點的扁平表示。

ImplicitAnimations

附加於此物件的隱含動畫集合。

(繼承來源 CompositionObject)
IsHitTestVisible

取得或設定一個值,指示根植於此視覺化的子樹是否參與命中測試。

(繼承來源 Visual)
IsPixelSnappingEnabled

取得或設定一個值,指示合成引擎是否將渲染的視覺元素與像素邊界對齊。

(繼承來源 Visual)
IsVisible

表示視覺化及其整個子視覺樹是否可見。

(繼承來源 Visual)
Offset

視覺相對於父視窗的偏移量,或根視覺化的相對於承載該視覺視窗左上角的偏移量。 可被模仿。

(繼承來源 Visual)
Opacity

視覺的不透明感。 可被模仿。

不透明度屬性決定視覺的透明度(若有的話),為 0 到 1 的值。 0 是完全透明,1 是完全不透明。 樹中仍存在不透明度為 0 的視覺元素。 與視覺化上的其他屬性一樣,不透明度可透過 Windows,UI 進行動畫製作。構圖動畫系統。

(繼承來源 Visual)
Orientation

一個四元數描述三維空間中的方向與旋轉,將應用於視覺效果。 可被模仿。

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

方法

名稱 Description
Close()

關閉 CompositionObject 並釋放系統資源。

(繼承來源 CompositionObject)
Dispose()

執行與釋放、釋放或重設非受控資源相關聯的應用程式定義工作。

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

定義了一個可以被動畫化的屬性。

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

適用於

另請參閱