LayerVisual 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
一個 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
- 繼承
- 屬性
範例
將效果套用到 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) |