Share via


CompositionSurfaceBrush 類別

定義

使用來自 ICompositionSurface 的圖元繪製 SpriteVisual

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

範例

將影像資產繪製到 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 的 Offset (100,0) 會將筆刷的延展和對齊內容位移 100 個單位,相對於其繪製到 的 SpriteVisual 左邊緣。

屬性

AnchorPoint

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

BitmapInterpolationMode

指定當 ICompositionSurface 中的圖元未形成一對一對應至 SpriteVisual (上的圖元時,用來插入來自 ICompositionSurface 的演算法,因為縮放、縮放、旋轉和其他轉換) 。

CenterPoint

筆刷旋轉和縮放的點。

Comment

要與 CompositionObject 建立關聯的字串。

(繼承來源 CompositionObject)
Compositor

用來建立這個CompositionObjectCompositor

(繼承來源 CompositionObject)
DispatcherQueue

取得 CompositionObject 的 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)
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)

適用於

另請參閱