Поделиться через


CompositionSurfaceBrush Класс

Определение

Закрашивает объект SpriteVisual пикселями из объекта ICompositionSurface.

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 используется для указания масштаба и расположения содержимого CompositionSurfaceBrush при нарисовке на SpriteVisual.

CompositionSurfaceBrush также имеет следующие свойства, которые позволяют выполнять пользовательские преобразования:

  • AnchorPoint (Точка привязки)
  • CenterPoint (Центральная точка)
  • Offset
  • RotationAngle (Угол поворота)
  • RotationAngleInDegrees (Угол поворота в градусах)
  • Масштабирование
  • TransformMatrix

Порядок операций преобразования в CompositionSurfaceBrush выглядит следующим образом:

  1. Содержимое CompositionSurfaceBrush растягивается и выравнивается по spriteVisual (см. свойства Stretch, HorizontalAlignmentRatio и VerticalAlignmentRatio ).

  2. Применяются любые другие свойства преобразования, заданные в CompositionSurfaceBrush.

    Поэтому пользовательские преобразования, применяемые к CompositionSurfaceBrush, вычисляются в пространстве координат spriteVisual, на который нарисована кисть. Например, при задании значения Offset of 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 (как это может происходить при растяжения, масштабировании, повороте и других преобразованиях).

CenterPoint

Точка поворота и масштабирования кисти.

Comment

Строка, связанная с CompositionObject.

(Унаследовано от CompositionObject)
Compositor

Compositor, используемый для создания объекта CompositionObject.

(Унаследовано от CompositionObject)
Dispatcher

Диспетчер для CompositionObject.

(Унаследовано от CompositionObject)
DispatcherQueue

Возвращает dispatcherQueue для Объекта CompostionObject.

(Унаследовано от 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

Объект ICompositionSurface, связанный с CompositionSurfaceBrush.

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()

Выполняет определяемые приложением задачи, связанные с удалением, высвобождением или сбросом неуправляемых ресурсов.

(Унаследовано от CompositionObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Определяет свойство, которое можно анимировать.

(Унаследовано от CompositionObject)
StartAnimation(String, CompositionAnimation, AnimationController)

Соединяет анимацию с указанным свойством объекта и запускает анимацию.

(Унаследовано от CompositionObject)
StartAnimation(String, CompositionAnimation)

Соединяет анимацию с указанным свойством объекта и запускает анимацию.

(Унаследовано от CompositionObject)
StartAnimationGroup(ICompositionAnimationBase)

Запускает группу анимации.

Метод StartAnimationGroup в CompositionObject позволяет запустить CompositionAnimationGroup. Все анимации в группе будут запущены одновременно с объектом .

(Унаследовано от CompositionObject)
StopAnimation(String)

Отключает анимацию от указанного свойства и останавливает анимацию.

(Унаследовано от CompositionObject)
StopAnimationGroup(ICompositionAnimationBase)

Останавливает группу анимации.

(Унаследовано от CompositionObject)
TryGetAnimationController(String)

Возвращает AnimationController для анимации, выполняемой в указанном свойстве.

(Унаследовано от CompositionObject)

Применяется к

См. также раздел