RenderTargetBitmap.RenderAsync Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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)
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
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
- RenderAsync(UIElement, Int32, Int32)
- renderização XAML para de exemplo de bitmap
Aplica-se a
RenderAsync(UIElement, Int32, Int32)
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
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
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
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 um RenderTargetBitmap. - 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
- RenderAsync(UIElement)
- renderização XAML para de exemplo de bitmap