CompositionSurfaceBrush 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
使用來自 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
- 繼承
- 屬性
範例
將影像資產繪製到 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 上的轉換作業順序如下:
CompositionSurfaceBrush 的內容會縮放並對齊 SpriteVisual (請參閱 Stretch、 HorizontalAlignmentRatio和 VerticalAlignmentRatio 屬性) 。
會套用 CompositionSurfaceBrush 上設定的任何其他轉換屬性。
因此,套用至 CompositionSurfaceBrush 的自訂轉換會在繪製筆刷的 SpriteVisual 座標空間中進行評估。 例如,設定 Vector2 的 Offset (100,0) 會將筆刷的延展和對齊內容位移 100 個單位,相對於其繪製到 的 SpriteVisual 左邊緣。
屬性
AnchorPoint |
筆刷上要放置在筆刷位移上的點。 值會根據 SpriteVisual 的大小正規化。 |
BitmapInterpolationMode |
指定當 ICompositionSurface 中的圖元未形成一對一對應至 SpriteVisual (上的圖元時,用來插入來自 ICompositionSurface 的演算法,因為縮放、縮放、旋轉和其他轉換) 。 |
CenterPoint |
筆刷旋轉和縮放的點。 |
Comment |
要與 CompositionObject 建立關聯的字串。 (繼承來源 CompositionObject) |
Compositor |
用來建立這個CompositionObject的Compositor。 (繼承來源 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 | |
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, AnimationController) |
將動畫與物件的指定屬性連接,並啟動動畫。 (繼承來源 CompositionObject) |
StartAnimation(String, CompositionAnimation) |
將動畫與物件的指定屬性連接,並啟動動畫。 (繼承來源 CompositionObject) |
StartAnimationGroup(ICompositionAnimationBase) |
啟動動畫群組。 CompositionObject上的StartAnimationGroup 方法可讓您啟動 CompositionAnimationGroup。 群組中的所有動畫都會在 物件上同時啟動。 (繼承來源 CompositionObject) |
StopAnimation(String) |
中斷動畫與指定屬性的連接,並停止動畫。 (繼承來源 CompositionObject) |
StopAnimationGroup(ICompositionAnimationBase) |
停止動畫群組。 (繼承來源 CompositionObject) |
TryGetAnimationController(String) |
傳回在指定屬性上執行之動畫的 AnimationController。 (繼承來源 CompositionObject) |