RenderTargetBitmap.RenderAsync Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
RenderAsync(UIElement) |
Restitue une instantané d’une arborescence visuelle UIElement dans une source d’image. |
RenderAsync(UIElement, Int32, Int32) |
Restitue une instantané d’une arborescence visuelle UIElement dans une source d’image. Spécifiez des valeurs pour scaledWidth et scaledHeight afin de modifier la dimension de rendu de la source d’origine. |
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
Paramètres
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 une fois retourné, tant que la valeur async Status n’indique pas d’erreur, le RenderTargetBitmap qui l’a appelé 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 un instance ImageBrush.
Si vous avez besoin d’une représentation de mémoire 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 d’interface utilisateur. Pour plus d’informations sur d’autres limitations, consultez Notes dans RenderTargetBitmap .
Vous pouvez passer null pour le paramètre d’élément , ce qui restitue 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 objet MediaElement ou CaptureElement 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 dont la visibilité est définie sur Réduite , ne sera pas capturé.
- Le contenu qui n’est pas directement connecté à l’arborescence visuelle XAML et le contenu de la fenêtre main ne sera pas capturé. Cela inclut le contenu de la fenêtre contextuelle , qui est considéré comme une sous-fenêtre.
- Pour Windows Phone application 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 rendus (la présence de contenu qui ne peut pas être capturé n’invalide pas la capture entière de cette composition XAML).
- Le contenu qui se trouve dans l’arborescence visuelle XAML mais hors écran peut être capturé, à condition qu’il ne s’agit pas d’une visibilité = réduite ou dans les autres cas restreints.
Voir aussi
S’applique à
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
Paramètres
- 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 une fois retourné, tant que la valeur async Status n’indique pas d’erreur, le RenderTargetBitmap qui l’a appelé 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 un instance ImageBrush.
Si vous avez besoin d’une représentation de mémoire 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 d’interface utilisateur. Pour plus d’informations sur d’autres limitations, consultez Notes dans RenderTargetBitmap .
L’appel de RenderAsync échoue si la hauteur ou la largeur mise à l’échelle de l’arborescence visuelle UIElement est supérieure à la quantité de mémoire vidéo que le système est en mesure d’allouer en interne.
Vous pouvez passer null pour le paramètre d’élément , ce qui restitue l’arborescence visuelle racine de l’application.
Valeurs scaledWidth et scaledHeight
Si scaledWidth et scaledHeight sont tous deux définis, les proportions de la bitmap d’origine sont ignorées et vos valeurs peuvent modifier les proportions.
Si scaledWidth ou scaledHeight , mais pas les deux, est spécifié, la valeur que vous fournissez contrôle cette dimension, mais les proportions sont conservées (l’autre dimension est calculée en fonction de la factoring des proportions de la bitmap d’origine).
Vous pouvez appeler cette méthode et laisser les valeurs scaledWidth et scaledHeight sur 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 maximale rendue 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. Le 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 10 000 par 10 000 pixels peut être mise à l’échelle à 4 096 par 4096 pixels, exemple de limite de ressources particulière sur les textures 2D appliquée.
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 objet MediaElement ou CaptureElement 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 dont la visibilité est définie sur Réduite , ne sera pas capturé.
- Le contenu qui n’est pas directement connecté à l’arborescence visuelle XAML et le contenu de la fenêtre main ne sera pas capturé. Cela inclut le contenu de la fenêtre contextuelle , qui est considéré comme une sous-fenêtre.
- Pour Windows Phone application 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 rendus (la présence de contenu qui ne peut pas être capturé n’invalide pas la capture entière de cette composition XAML).
- Le contenu qui se trouve dans l’arborescence visuelle XAML mais hors écran peut être capturé, à condition qu’il ne s’agit pas d’une visibilité = réduite ou dans les autres cas restreints.