CompositionSurfaceBrush 類別

定義

使用 ICompositionSurface 中的圖元繪製 SpriteVisual

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

Windows 需求

裝置系列
Windows 10 (已於 10.0.10586.0 引進)
API contract
Windows.Foundation.UniversalApiContract (已於 v2.0 引進)

範例

將影像資產繪製到 SpriteVisual

private SpriteVisual CreateImageVisual(ICompositionSurface imageSurface)
{
  SpriteVisual imageVisual = _compositor.CreateSpriteVisual();
  imageVisual.Size = new Vector2(300, 200);

  CompositionSurfaceBrush imageBrush = _compositor.CreateSurfaceBrush();
  imageBrush.Surface = imageSurface;

  // specify CompositionStretch on SurfaceBrush and horizontal/vertical alignment
  imageBrush.Stretch = CompositionStretch.UniformToFill;
  imageBrush.HorizontalAlignmentRatio = 0.5f;
  imageBrush.VerticalAlignmentRatio = 0.5f;

  imageVisual.Brush = imageBrush;
  return imageVisual;
}

將自訂縮放轉換動畫套用至 CompositionSurfaceBrush

private void AnimateBrushScale(SpriteVisual imageVisual)
{
  CompositionSurfaceBrush imageBrush = (CompositionSurfaceBrush)imageVisual.Brush;

  // set brush CenterPoint at the center of the content painted onto imageVisual 
  imageBrush.CenterPoint = imageVisual.Size / 2;

  // set up scale keyframe animation
  CompositionScopedBatch batch = _compositor.CreateScopedBatch(CompositionBatchTypes.Animation);
  Vector2KeyFrameAnimation scaleAnimation = _compositor.CreateVector2KeyFrameAnimation();
  scaleAnimation.InsertKeyFrame(1.0f, new Vector2(1.5f));
  scaleAnimation.Duration = TimeSpan.FromMilliseconds(500);

  // start animation on CompositionSurfaceBrush.Scale
  imageBrush.StartAnimation("Scale", scaleAnimation);

  // end animation batch and fire completion event
  batch.End();
  batch.Completed += ScaleAnimationBatch_Completed;
} 

備註

Stretch 屬性與 HorizontalAlignmentRatio 和 VerticalAlignmentRatio 屬性搭配使用,可用來指定在繪製到 SpriteVisual 時 CompositionSurfaceBrush 內容的縮放比例和位置。

CompositionSurfaceBrush 也有下列屬性,可啟用自訂轉換:

  • AnchorPoint
  • CenterPoint
  • Offset
  • RotationAngle
  • RotationAngleInDegrees
  • 調整
  • TransformMatrix

CompositionSurfaceBrush 上的轉換作業順序如下:

  1. CompositionSurfaceBrush 的內容會延展並對齊 SpriteVisual (請參閱 StretchHorizontalAlignmentRatioVerticalAlignmentRatio 屬性) 。

  2. 會套用 CompositionSurfaceBrush 上設定的任何其他轉換屬性。

    因此,套用至 CompositionSurfaceBrush 的自訂轉換會在筆刷繪製所在的 SpriteVisual 座標空間中進行評估。 例如,設定 Vector2 的位移 (100,0) 會將筆刷的延展和對齊內容位移 100 個單位,相對於其繪製到 SpriteVisual 的左邊緣。。

版本歷程記錄

Windows 版本 SDK 版本 已新增值
1607 14393 AnchorPoint
1607 14393 CenterPoint
1607 14393 Offset
1607 14393 RotationAngle
1607 14393 RotationAngleInDegrees
1607 14393 調整
1607 14393 TransformMatrix
1903 18362 SnapToPixels

屬性

AnchorPoint

筆刷上要放置在筆刷位移上的點。 值會根據 SpriteVisual 的大小正規化。

BitmapInterpolationMode

指定當 ICompositionSurface 的圖元未形成一對一對應至 SpriteVisual (上的圖元時,用於插補來自 ICompositionSurface 的演算法,如同在延展、縮放、旋轉和其他轉換下可能發生) 。

CenterPoint

筆刷旋轉和縮放的點。

Comment

要與 CompositionObject 建立關聯的字串。

(繼承來源 CompositionObject)
Compositor

用來建立這個CompositionObjectCompositor

(繼承來源 CompositionObject)
Dispatcher

CompositionObject的發送器。

(繼承來源 CompositionObject)
DispatcherQueue

取得 CompostionObject 的 DispatcherQueue

(繼承來源 CompositionObject)
HorizontalAlignmentRatio

控制與 SpriteVisual垂直軸相關的內容垂直軸位置。 此值會從 0.0f 限制為 1.0f,其中 0.0f 代表左垂直邊緣,而 1.0f 則代表 SpriteVisual的右垂直邊緣。

ImplicitAnimations

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

(繼承來源 CompositionObject)
Offset

筆刷相對於其 SpriteVisual的位移。

Properties

CompositionObject相關聯的屬性集合。

(繼承來源 CompositionObject)
RotationAngle

筆刷的旋轉角度,以弧度為單位。

RotationAngleInDegrees

筆刷的旋轉角度,以度為單位。

Scale

要套用至筆刷的尺規。

SnapToPixels

取得或設定值,這個值表示表面筆刷是否與圖元對齊。

Stretch

控制套用至 ICompositionSurface 內容相對於所繪製之 SpriteVisual 大小的縮放比例。

Surface

CompositionSurfaceBrush相關聯的ICompositionSurface

TransformMatrix

要套用至筆刷的轉換矩陣。

VerticalAlignmentRatio

控制與 SpriteVisual水準軸相關的內容水準軸位置。 此值會從 0.0f 固定到 1.0f,其中 0.0f 代表上層水準邊緣,而 1.0f 則代表 SpriteVisual的底部水準邊緣。 預設值為 0.5f。

方法

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)

適用於

另請參閱