Partilhar via


RenderTargetBitmap.RenderAsync Método

Definição

Sobrecargas

RenderAsync(UIElement)

Renderiza um instantâneo de uma UIElement árvore visual em uma fonte de imagem.

RenderAsync(UIElement, Int32, Int32)

Renderiza um instantâneo de uma UIElement árvore visual em uma fonte de imagem. Especifique valores para scaledWidth e scaledHeight para alterar a dimensão de renderização da fonte original.

RenderAsync(UIElement)

Renderiza um instantâneo de uma UIElement árvore visual em uma fonte de imagem.

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

Parâmetros

element
UIElement

Um UIElement que representa o fragmento de árvore visual a ser renderizado.

Retornos

Um objeto IAsyncAction que você pode usar para controlar a operação assíncrona.

Atributos

Comentários

A imagem renderizada não é retornada por esse método. No entanto, depois que ele retornar, desde que o valor Status assíncrono não indique um erro, o RenderTargetBitmap que o chamou terá informações de imagem válidas. O RenderTargetBitmap pode ser atribuído no código como uma fonte de imagem para um controle de imagem ou instância de ImageBrush.

Se você precisar de uma representação de buffer de pixel do conteúdo renderizado e não apenas uma fonte de imagem, use GetPixelsAsync depois de chamar RenderAsync.

Esse é um método assíncrono, portanto, não há garantia de sincronização exata de quadros com a origem da interface do usuário. Consulte Comentários em RenderTargetBitmap para obter informações sobre algumas outras limitações.

Você pode passar nulo para o elemento parâmetro e isso renderiza a árvore visual raiz do aplicativo.

Visuais XAML e recursos de captura de RenderTargetBitmap

Há alguns cenários para conteúdo visual composto por XAML que você não pode capturar em um RenderTargetBitmap:

  • O conteúdo do vídeo em um MediaPlayerElement não pode ser capturado usando RenderTargetBitmap. Isso inclui a captura de quadros de dentro do conteúdo do vídeo.
  • O conteúdo personalizado do Microsoft DirectX (sua própria cadeia de troca) dentro de um SwapChainBackgroundPanel ou SwapChainPanel não pode ser capturado usando RenderTargetBitmap.
  • O conteúdo que está na árvore, mas com seu Visibility definido como recolhido não será capturado.
  • O conteúdo que não está diretamente conectado à árvore visual XAML e o conteúdo da janela principal não serão capturados. Isso inclui conteúdo de pop-up, que é considerado como uma sub-janela.
  • O conteúdo que não pode ser capturado aparecerá como em branco na imagem capturada, mas outro conteúdo na mesma árvore visual ainda pode ser capturado e será renderizado (a presença de conteúdo que não pode ser capturado não invalidará toda a captura dessa composição XAML).
  • O conteúdo que está na árvore visual XAML, mas fora da tela, pode ser capturado, desde que não seja Visibilidade = recolhido ou em outros casos restritos.

Confira também

Aplica-se a

RenderAsync(UIElement, Int32, Int32)

Renderiza um instantâneo de uma UIElement árvore visual em uma fonte de imagem. Especifique valores para scaledWidth e scaledHeight para alterar a dimensão de renderização da fonte original.

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

Parâmetros

element
UIElement

Um UIElement que representa o fragmento de árvore visual a ser renderizado.

scaledWidth
Int32

int

Especifica a largura de destino na qual renderizar. O padrão é 0. scaledWidth e/ou scaledHeight podem ser opcionais; consulte Comentários.

scaledHeight
Int32

int

Especifica a altura de destino na qual renderizar. O padrão é 0. scaledWidth e/ou scaledHeight podem ser opcionais; consulte Comentários.

Retornos

Um objeto IAsyncAction que você pode usar para controlar a operação assíncrona.

Atributos

Comentários

A imagem renderizada não é retornada por esse método. No entanto, depois que ele retornar, desde que o valor Status assíncrono não indique um erro, o RenderTargetBitmap que o chamou terá informações de imagem válidas. O RenderTargetBitmap pode ser atribuído no código como uma fonte de imagem para um controle de imagem ou instância de ImageBrush.

Se você precisar de uma representação de buffer de pixel do conteúdo renderizado e não apenas uma fonte de imagem, use GetPixelsAsync depois de chamar RenderAsync.

Esse é um método assíncrono, portanto, não há garantia de sincronização exata de quadros com a origem da interface do usuário. Consulte Comentários em RenderTargetBitmap para obter informações sobre algumas outras limitações.

Chamar RenderAsync falhará se a altura ou largura dimensionada da UIElement árvore visual for maior do que a quantidade de memória de vídeo que o sistema poderá alocar internamente.

Você pode passar nulo para o elemento parâmetro e isso renderiza a árvore visual raiz do aplicativo.

valores de scaledWidth e scaledHeight

Se scaledWidth e scaledHeight estiverem definidas, a proporção do bitmap original será ignorada e seus valores poderão alterar a taxa de proporção.

Se scaledWidth ou scaledHeight mas não ambos for especificado, o valor que você fornece controla essa dimensão, mas a proporção é preservada (a outra dimensão é calculada com base na fatoração da taxa de proporção do bitmap original).

Você pode chamar esse método e deixar os valores scaledWidth e scaledHeight como 0. Nesse caso, a árvore UIElement será renderizada em seu tamanho nativo. Esse é o mesmo comportamento que a sobrecarga RenderAsync(UIElement).

O tamanho máximo renderizado de uma árvore visual XAML é restrito pelas dimensões máximas de uma textura do Microsoft DirectX; para obter mais informações, consulte limites de recursos (). Esse limite de recursos pode variar dependendo do hardware em que o aplicativo é executado. Conteúdo muito grande que excede esse limite pode ser dimensionado para caber. Se os limites de dimensionamento forem aplicados dessa forma, o tamanho renderizado após o dimensionamento poderá ser consultado usando as propriedades PixelWidth e PixelHeight. Por exemplo, uma árvore visual XAML de 10000 por 10000 pixels pode ser dimensionada para 4096 por 4.096 pixels, um exemplo de um limite de recurso específico em texturas 2D sendo aplicadas.

Visuais XAML e recursos de captura de RenderTargetBitmap

Há alguns cenários para conteúdo visual composto por XAML que você não pode capturar em um RenderTargetBitmap:

  • O conteúdo do vídeo em um MediaPlayerElement não pode ser capturado usando RenderTargetBitmap. Isso inclui a captura de quadros de dentro do conteúdo do vídeo.
  • O conteúdo personalizado do Microsoft DirectX (sua própria cadeia de troca) dentro de um SwapChainBackgroundPanel ou SwapChainPanel não pode ser capturado usando RenderTargetBitmap.
  • O conteúdo que está na árvore, mas com seu Visibility definido como recolhido não será capturado.
  • O conteúdo que não está diretamente conectado à árvore visual XAML e o conteúdo da janela principal não serão capturados. Isso inclui conteúdo de pop-up, que é considerado como uma sub-janela.
  • Para o aplicativo Windows Phone 8.x: o conteúdo de um controle WebView não pode ser renderizado em umRenderTargetBitmap.
  • O conteúdo que não pode ser capturado aparecerá como em branco na imagem capturada, mas outro conteúdo na mesma árvore visual ainda pode ser capturado e será renderizado (a presença de conteúdo que não pode ser capturado não invalidará toda a captura dessa composição XAML).
  • O conteúdo que está na árvore visual XAML, mas fora da tela, pode ser capturado, desde que não seja Visibilidade = recolhido ou em outros casos restritos.

Confira também

Aplica-se a