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


LayerVisual Класс

Определение

Объект ContainerVisual, дочерние элементы которого разделены в один слой.

public ref class LayerVisual sealed : ContainerVisual
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 196608)]
/// [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.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 196608)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class LayerVisual : ContainerVisual
Public NotInheritable Class LayerVisual
Inherits ContainerVisual
Наследование
Object Platform::Object IInspectable CompositionObject Visual ContainerVisual LayerVisual
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 Anniversary Edition (появилось в 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v3.0)

Примеры

В этом примере показано, как применить GaussianBlurEffect к Объекту 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);
}        

Результат выглядит так:

Красный квадрат, перекрывающий синий квадрат с примененным эффектом размытия.

В этом примере показано, как применить DropShadow к Объекту 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 задано свойство Effect объекта LayerVisual, EffectBrush автоматически использует в качестве входных данных поддеревье, коренится в LayerVisual. Неявные входные данные для LayerVisual работают для эффектов следующим образом:

  • Если у эффекта есть один вход, EffectBrush использует в качестве входных данных поддеревь, корнем которого является LayerVisual.
  • Если эффект имеет 2 входных данных, первый необязаемый входной элемент EffectBrush использует в качестве входных данных поддеревье, корнем которого является LayerVisual.
  • Система не позволяет задать эффект с 0 входами или эффекты со всеми входными данными, связанными с SurfaceBrush, в качестве свойства EffectBrush в LayerVisual. Это приведет к возникновению исключения.

Журнал версий

Версия Windows Версия пакета SDK Добавленная стоимость
1709 16299 Shadow

Свойства

AnchorPoint

Точка на визуальном элементе, позиционируется по смещению визуального элемента. Значение нормализуется относительно размера визуального элемента. Анимация.

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

Указывает, должна ли отображаться задняя часть визуального элемента во время трехмерного преобразования.

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

Указывает способ создания краев растровых изображений и клипов, связанных с визуальным элементом или со всеми визуальными элементами в поддереве, корнями которых является этот визуальный элемент. Установка BorderMode в родительском визуальном элементе повлияет на все дочерние визуальные элементы в поддереве и может быть выборочно отключена в каждом дочернем визуальном элементе.

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

Точка, относительно которой происходит поворот или масштабирование. Анимация

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

Дочерние элементы Объекта ContainerVisual.

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

Указывает область обрезки для визуального элемента. При отрисовки визуального элемента отображается только часть визуального элемента, которая находится в области обрезки, а все содержимое, которое выходит за пределы области обрезки, обрезается (то есть не отображается).

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

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

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

Указывает, как точечный рисунок визуального элемента смешивается с экраном.

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

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

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

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

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

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

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

Возвращает или задает эффект, применяемый к плоскому представлению дочерних элементов объекта LayerVisual.

ImplicitAnimations

Коллекция неявных анимаций, присоединенных к этому объекту.

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

Возвращает или задает значение, указывающее, участвует ли вложенное дерево визуального элемента, укорененная в этом визуальном элементе, в проверке попадания.

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

Возвращает или задает значение, указывающее, выравнивает ли обработчик композиции отображаемый визуальный элемент с границой пикселя.

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

Указывает, видим ли визуальный элемент и все его поддеревье дочерних визуальных элементов.

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

Смещение визуального элемента относительно его родительского элемента или для корневого визуального элемента относительно верхнего левого угла окна, в котором размещен визуальный элемент. Анимация.

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

Непрозрачность визуального элемента. Анимация.

Свойство opacity определяет прозрачность (если таковой имеется) визуального элемента и является значением в диапазоне от 0 до 1. 0 является полностью прозрачным, а 1 — полностью непрозрачным. Визуальный элемент со свойством Opacity, равном 0, по-прежнему присутствует в дереве. Как и другие свойства визуального элемента, Opacity можно анимировать с помощью пользовательского интерфейса Windows. Система анимации композиции.

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

Методы

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)

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

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