RenderTargetBitmap.RenderAsync Метод

Определение

Перегрузки

RenderAsync(UIElement)

Отрисовывает snapshot визуального дерева UIElement в источник изображения.

RenderAsync(UIElement, Int32, Int32)

Отрисовывает snapshot визуального дерева UIElement в источник изображения. Укажите значения scaledWidth и scaledHeight , чтобы изменить измерение отрисовки исходного источника.

RenderAsync(UIElement)

Отрисовывает snapshot визуального дерева UIElement в источник изображения.

public:
 virtual IAsyncAction ^ RenderAsync(UIElement ^ element) = RenderAsync;
/// [Windows.Foundation.Metadata.Overload("RenderAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction RenderAsync(UIElement const& element);
[Windows.Foundation.Metadata.Overload("RenderAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction RenderAsync(UIElement element);
function renderAsync(element)
Public Function RenderAsync (element As UIElement) As IAsyncAction

Параметры

element
UIElement

Элемент UIElement, представляющий фрагмент визуального дерева для отрисовки.

Возвращаемое значение

Объект IAsyncAction , который можно использовать для управления асинхронной операцией.

Атрибуты

Комментарии

Отрисованное изображение не возвращается этим методом. Но после возврата, если значение асинхронного состояния не указывает на ошибку, объект RenderTargetBitmap , который его вызвал, будет иметь допустимые сведения об изображении. Затем RenderTargetBitmap можно назначить в коде в качестве источника изображения для элемента управления Image или экземпляра ImageBrush .

Если требуется представление отображаемого содержимого в буфере пикселей, а не только источника изображения, используйте Метод GetPixelsAsync после вызова RenderAsync.

Это асинхронный метод, поэтому нет гарантии точной синхронизации кадров с источником пользовательского интерфейса. Дополнительные сведения о некоторых других ограничениях см. в разделе Примечания в RenderTargetBitmap .

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

Визуальные элементы XAML и возможности захвата RenderTargetBitmap

Существует несколько сценариев для визуального содержимого, состоящего из XAML, которое невозможно записать в RenderTargetBitmap:

  • Видеосодержимое в MediaElement или CaptureElement не может быть записано с помощью RenderTargetBitmap. Это включает в себя захват кадров из видеосодержимого.
  • Пользовательское содержимое Microsoft DirectX (ваша собственная цепочка буферов) внутри SwapChainBackgroundPanel или SwapChainPanel не может быть записано с помощью RenderTargetBitmap.
  • Содержимое, которое находится в дереве, но для параметра Видимость установлено значение Свернуто , не будет захватываться.
  • Содержимое, которое не подключено непосредственно к визуальному дереву XAML, и содержимое окна main не будет захватываться. Сюда входит содержимое всплывающего окна , которое считается как вложенное окно.
  • Для приложения Windows Phone версии 8.x содержимое элемента управления WebView не может быть отрисовано в RenderTargetBitmap.
  • Содержимое, которое не может быть записано, будет отображаться как пустое на изображении, но другое содержимое в том же визуальном дереве по-прежнему может быть записано и отрисовывается (наличие содержимого, которое не может быть записано, не сделает недействительным весь захват этой композиции XAML).
  • Содержимое, которое находится в визуальном дереве XAML, но за экраном, можно захватывать, если оно не = свернуто или в других ограниченных случаях.

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

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

RenderAsync(UIElement, Int32, Int32)

Отрисовывает snapshot визуального дерева UIElement в источник изображения. Укажите значения scaledWidth и scaledHeight , чтобы изменить измерение отрисовки исходного источника.

public:
 virtual IAsyncAction ^ RenderAsync(UIElement ^ element, int scaledWidth, int scaledHeight) = RenderAsync;
/// [Windows.Foundation.Metadata.Overload("RenderToSizeAsync")]
/// [Windows.Foundation.Metadata.RemoteAsync]
IAsyncAction RenderAsync(UIElement const& element, int const& scaledWidth, int const& scaledHeight);
[Windows.Foundation.Metadata.Overload("RenderToSizeAsync")]
[Windows.Foundation.Metadata.RemoteAsync]
public IAsyncAction RenderAsync(UIElement element, int scaledWidth, int scaledHeight);
function renderAsync(element, scaledWidth, scaledHeight)
Public Function RenderAsync (element As UIElement, scaledWidth As Integer, scaledHeight As Integer) As IAsyncAction

Параметры

element
UIElement

Элемент UIElement, представляющий фрагмент визуального дерева для отрисовки.

scaledWidth
Int32

int

Указывает целевую ширину, по которой выполняется отрисовка. Значение по умолчанию равно 0. scaledWidth и (или) scaledHeight могут быть необязательными; См. примечания.

scaledHeight
Int32

int

Указывает целевую высоту, с которой выполняется отрисовка. Значение по умолчанию равно 0. scaledWidth и (или) scaledHeight могут быть необязательными; См. примечания.

Возвращаемое значение

Объект IAsyncAction , который можно использовать для управления асинхронной операцией.

Атрибуты

Комментарии

Отрисованное изображение не возвращается этим методом. Но после возврата, если значение асинхронного состояния не указывает на ошибку, объект RenderTargetBitmap , который его вызвал, будет иметь допустимые сведения об изображении. Затем RenderTargetBitmap можно назначить в коде в качестве источника изображения для элемента управления Image или экземпляра ImageBrush .

Если требуется представление отображаемого содержимого в буфере пикселей, а не только источника изображения, используйте Метод GetPixelsAsync после вызова RenderAsync.

Это асинхронный метод, поэтому нет гарантии точной синхронизации кадров с источником пользовательского интерфейса. Дополнительные сведения о некоторых других ограничениях см. в разделе Примечания в RenderTargetBitmap .

Вызов RenderAsync завершится ошибкой , если масштабируемая высота или ширина визуального дерева UIElement превышает объем видеопамяти, который система может выделить внутренне.

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

значения scaledWidth и scaledHeight

Если заданы значения scaledWidth и scaledHeight , пропорции исходного растрового изображения игнорируются, и ваши значения могут изменить пропорции.

Если указан параметр scaledWidth или scaledHeight , но не оба, то указанное значение определяет это измерение, но пропорции сохраняются (другое измерение вычисляется на основе разбиения пропорций исходного растрового рисунка).

Можно вызвать этот метод и оставить значения scaledWidth и scaledHeight как 0. В этом случае дерево UIElement будет отображаться в собственном размере. Это то же поведение, что и перегрузка RenderAsync(UIElement).

Максимальный размер отображаемого визуального дерева XAML ограничивается максимальными размерами текстуры Microsoft DirectX; Дополнительные сведения см. в разделе Ограничения ресурсов (). Это ограничение ресурсов может отличаться в зависимости от оборудования, на котором выполняется приложение. Очень большое содержимое, превышающее это ограничение, может быть масштабировано по размеру. Если ограничения масштабирования применяются таким образом, отображаемый размер после масштабирования можно запросить с помощью свойств PixelWidth и PixelHeight . Например, визуальное дерево XAML 10000 на 10000 пикселей может быть масштабировано до 4096 на 4096 пикселей, что является примером конкретного ограничения ресурсов для двухd-текстур.

Визуальные элементы XAML и возможности захвата RenderTargetBitmap

Существует несколько сценариев для визуального содержимого, состоящего из XAML, которое невозможно записать в RenderTargetBitmap:

  • Видеосодержимое в MediaElement или CaptureElement не может быть записано с помощью RenderTargetBitmap. Это включает в себя захват кадров из видеосодержимого.
  • Пользовательское содержимое Microsoft DirectX (ваша собственная цепочка буферов) внутри SwapChainBackgroundPanel или SwapChainPanel не может быть записано с помощью RenderTargetBitmap.
  • Содержимое, которое находится в дереве, но для параметра Видимость установлено значение Свернуто , не будет захватываться.
  • Содержимое, которое не подключено непосредственно к визуальному дереву XAML, и содержимое окна main не будет захватываться. Сюда входит содержимое всплывающего окна , которое считается как вложенное окно.
  • Для приложения Windows Phone версии 8.x содержимое элемента управления WebView не может быть отрисовано в RenderTargetBitmap.
  • Содержимое, которое не может быть записано, будет отображаться как пустое на изображении, но другое содержимое в том же визуальном дереве по-прежнему может быть записано и отрисовывается (наличие содержимого, которое не может быть записано, не сделает недействительным весь захват этой композиции XAML).
  • Содержимое, которое находится в визуальном дереве XAML, но за экраном, можно захватывать, если оно не = свернуто или в других ограниченных случаях.

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

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