Partager via


RenderTargetBitmap.RenderAsync Méthode

Définition

Surcharges

RenderAsync(UIElement)

Affiche un instantané d’un élément UIElement 'arborescence visuelle sur une source d’image.

RenderAsync(UIElement, Int32, Int32)

Affiche un instantané d’un élément UIElement 'arborescence visuelle sur une source d’image. Spécifiez des valeurs pour scaledWidth et scaledHeight pour modifier la dimension de rendu de la source d’origine.

RenderAsync(UIElement)

Affiche un instantané d’un élément UIElement 'arborescence visuelle sur une source d’image.

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

Paramètres

element
UIElement

Un UIElement qui représente le fragment d’arborescence visuelle à afficher.

Retours

Objet IAsyncAction que vous pouvez utiliser pour contrôler l’opération asynchrone.

Attributs

Remarques

L’image rendue n’est pas retournée par cette méthode. Mais après son retour, tant que la valeur Status asynchrone n’indique pas d’erreur, le RenderTargetBitmap qui l’appelle aura des informations d’image valides. Le RenderTargetBitmap peut ensuite être affecté dans le code en tant que source d’image pour un contrôle Image ou instance d’ImageBrush.

Si vous avez besoin d’une représentation tampon de pixels du contenu rendu et pas seulement d’une source d’image, utilisez GetPixelsAsync après avoir appelé RenderAsync.

Il s’agit d’une méthode asynchrone. Il n’existe donc aucune garantie de synchronisation exacte des images avec la source de l’interface utilisateur. Consultez les remarques dans RenderTargetBitmap pour plus d’informations sur d’autres limitations.

Vous pouvez passer null pour l’élément paramètre et qui affiche l’arborescence visuelle racine de l’application.

Visuels XAML et fonctionnalités de capture RenderTargetBitmap

Il existe quelques scénarios pour le contenu visuel composé en XAML que vous ne pouvez pas capturer dans un RenderTargetBitmap:

  • Le contenu vidéo d’un MediaPlayerElement ne peut pas être capturé à l’aide de renderTargetBitmap. Cela inclut la capture d’images à partir du contenu vidéo.
  • Le contenu Microsoft DirectX personnalisé (votre propre chaîne d’échange) à l’intérieur d’un swapChainBackgroundPanel ou SwapChainPanel ne peut pas être capturé à l’aide de RenderTargetBitmap.
  • Le contenu qui se trouve dans l’arborescence, mais avec son Visibilité défini sur réduit ne sera pas capturé.
  • Le contenu qui n’est pas directement connecté à l’arborescence visuelle XAML et le contenu de la fenêtre principale ne sera pas capturé. Cela inclut contenu de fenêtre contextuelle, qui est considéré comme une sous-fenêtre.
  • Le contenu qui ne peut pas être capturé apparaît comme vide dans l’image capturée, mais d’autres contenus de la même arborescence visuelle peuvent toujours être capturés et seront affichés (la présence de contenu qui ne peut pas être capturé n’invalidera pas la capture entière de cette composition XAML).
  • Le contenu figurant dans l’arborescence visuelle XAML, mais hors écran peut être capturé, tant qu’il n’est pas Visibilité = réduit ou dans les autres cas restreints.

Voir aussi

S’applique à

RenderAsync(UIElement, Int32, Int32)

Affiche un instantané d’un élément UIElement 'arborescence visuelle sur une source d’image. Spécifiez des valeurs pour scaledWidth et scaledHeight pour modifier la dimension de rendu de la source d’origine.

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

Paramètres

element
UIElement

Un UIElement qui représente le fragment d’arborescence visuelle à afficher.

scaledWidth
Int32

int

Spécifie la largeur cible à laquelle effectuer le rendu. La valeur par défaut est 0. scaledWidth et/ou scaledHeight peuvent être facultatifs ; voir Remarques.

scaledHeight
Int32

int

Spécifie la hauteur cible à laquelle effectuer le rendu. La valeur par défaut est 0. scaledWidth et/ou scaledHeight peuvent être facultatifs ; voir Remarques.

Retours

Objet IAsyncAction que vous pouvez utiliser pour contrôler l’opération asynchrone.

Attributs

Remarques

L’image rendue n’est pas retournée par cette méthode. Mais après son retour, tant que la valeur Status asynchrone n’indique pas d’erreur, le RenderTargetBitmap qui l’appelle aura des informations d’image valides. Le RenderTargetBitmap peut ensuite être affecté dans le code en tant que source d’image pour un contrôle Image ou instance d’ImageBrush.

Si vous avez besoin d’une représentation tampon de pixels du contenu rendu et pas seulement d’une source d’image, utilisez GetPixelsAsync après avoir appelé RenderAsync.

Il s’agit d’une méthode asynchrone. Il n’existe donc aucune garantie de synchronisation exacte des images avec la source de l’interface utilisateur. Consultez les remarques dans RenderTargetBitmap pour plus d’informations sur d’autres limitations.

L’appel RenderAsync échoue si la hauteur ou la largeur mise à l’échelle de l’arborescence visuelle UIElement sont supérieures à la quantité de mémoire vidéo que le système est en mesure d’allouer en interne.

Vous pouvez passer null pour l’élément paramètre et qui affiche l’arborescence visuelle racine de l’application.

valeurs scaledWidth et scaledHeight

Si scaledWidth et scaledHeight sont tous les deux définis, le rapport d’aspect de la bitmap d’origine est ignoré et vos valeurs peuvent modifier le rapport d’aspect.

Si scaledWidth ou scaledHeight, mais pas les deux, la valeur que vous fournissez aux contrôles de cette dimension, mais le rapport d’aspect est conservé (l’autre dimension est calculée en fonction du facteur du ratio d’aspect de la bitmap d’origine).

Vous pouvez appeler cette méthode et laisser les valeurs scaledWidth et scaledHeight les deux comme 0. Dans ce cas, l’arborescence UIElement sera rendue à sa taille native. Il s’agit du même comportement que la surcharge RenderAsync(UIElement).

La taille de rendu maximale d’une arborescence visuelle XAML est limitée par les dimensions maximales d’une texture Microsoft DirectX ; Pour plus d’informations, consultez limites des ressources (). Cette limite de ressources peut varier en fonction du matériel sur lequel l’application s’exécute. Un contenu très volumineux qui dépasse cette limite peut être mis à l’échelle pour s’adapter. Si les limites de mise à l’échelle sont appliquées de cette façon, la taille rendue après la mise à l’échelle peut être interrogée à l’aide des propriétés PixelWidth et PixelHeight. Par exemple, une arborescence visuelle XAML de 1 0000 pixels de 1 000 pixels peut être mise à l’échelle à 4096 par 4 096 pixels, un exemple de limite de ressources particulière sur les textures 2D appliquées.

Visuels XAML et fonctionnalités de capture RenderTargetBitmap

Il existe quelques scénarios pour le contenu visuel composé en XAML que vous ne pouvez pas capturer dans un RenderTargetBitmap:

  • Le contenu vidéo d’un MediaPlayerElement ne peut pas être capturé à l’aide de renderTargetBitmap. Cela inclut la capture d’images à partir du contenu vidéo.
  • Le contenu Microsoft DirectX personnalisé (votre propre chaîne d’échange) à l’intérieur d’un swapChainBackgroundPanel ou SwapChainPanel ne peut pas être capturé à l’aide de RenderTargetBitmap.
  • Le contenu qui se trouve dans l’arborescence, mais avec son Visibilité défini sur réduit ne sera pas capturé.
  • Le contenu qui n’est pas directement connecté à l’arborescence visuelle XAML et le contenu de la fenêtre principale ne sera pas capturé. Cela inclut contenu de fenêtre contextuelle, qui est considéré comme une sous-fenêtre.
  • Pour l’application Windows Phone 8.x : le contenu d’un contrôle WebView ne peut pas être rendu dans un RenderTargetBitmap.
  • Le contenu qui ne peut pas être capturé apparaît comme vide dans l’image capturée, mais d’autres contenus de la même arborescence visuelle peuvent toujours être capturés et seront affichés (la présence de contenu qui ne peut pas être capturé n’invalidera pas la capture entière de cette composition XAML).
  • Le contenu figurant dans l’arborescence visuelle XAML, mais hors écran peut être capturé, tant qu’il n’est pas Visibilité = réduit ou dans les autres cas restreints.

Voir aussi

S’applique à