LayerVisual 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
其子系扁平化成單一層的 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
- 繼承
- 屬性
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 |
用來建立這個CompositionObject的Compositor。 (繼承來源 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) |