Share via


RenderTargetBitmap.RenderAsync Metodo

Definizione

Overload

RenderAsync(UIElement)

Esegue il rendering di uno snapshot di un albero visivo UIElement in un'origine immagine.

RenderAsync(UIElement, Int32, Int32)

Esegue il rendering di uno snapshot di un albero visivo UIElement in un'origine immagine. Specificare i valori per scaledWidth e scaledHeight per modificare la dimensione di rendering dell'origine originale.

RenderAsync(UIElement)

Esegue il rendering di uno snapshot di un albero visivo UIElement in un'origine immagine.

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

Parametri

element
UIElement

UIElement che rappresenta il frammento dell'albero visivo da eseguire per il rendering.

Restituisce

Oggetto IAsyncAction che è possibile usare per controllare l'operazione asincrona.

Attributi

Commenti

L'immagine di cui è stato eseguito il rendering non viene restituita da questo metodo. Ma dopo aver restituito, purché il valore stato asincrono non indichi un errore, il RenderingTargetBitmap che ha chiamato avrà informazioni sull'immagine valide. Il renderingTargetBitmap può quindi essere assegnato nel codice come origine immagine per un controllo Image o un'istanza di ImageBrush.

Se è necessaria una rappresentazione del buffer pixel del contenuto di rendering e non solo un'origine immagine, usare GetPixelsAsync dopo aver chiamato RenderAsync .

Si tratta di un metodo asincrono, quindi non esiste alcuna garanzia di sincronizzazione esatta dei frame con l'origine dell'interfaccia utente. Per informazioni su altre limitazioni, vedere Osservazioni in RenderTargetBitmap .

È possibile passare Null per il parametro dell'elemento e che esegue il rendering dell'albero visivo radice dell'app.

Oggetti visivi XAML e funzionalità di acquisizione RenderTargetBitmap

Esistono alcuni scenari per il contenuto visivo composto da XAML che non è possibile acquisire in un RenderingTargetBitmap:

  • Il contenuto video in un oggetto MediaPlayerElement non può essere acquisito usando RenderTargetBitmap. Ciò include l'acquisizione di fotogrammi dall'interno del contenuto video.
  • Il contenuto Microsoft DirectX personalizzato (catena di scambio) all'interno di un oggetto SwapChainBackgroundPanel o SwapChainPanel non può essere acquisito usando RenderTargetBitmap.
  • Il contenuto presente nell'albero, ma con la relativa visibilità impostata su Compresso non verrà acquisito.
  • Il contenuto non è direttamente connesso all'albero visivo XAML e il contenuto della finestra principale non verrà acquisito. Ciò include il contenuto popup , considerato come una sotto finestra.
  • Il contenuto che non può essere acquisito verrà visualizzato come vuoto nell'immagine acquisita, ma altri contenuti nello stesso albero visivo possono comunque essere acquisiti e eseguiranno il rendering (la presenza di contenuti che non possono essere acquisiti non invaliderà l'intera acquisizione di tale composizione XAML).
  • Il contenuto presente nell'albero visivo XAML, ma può essere acquisito, purché non = siavisibilità compresso o negli altri casi con restrizioni.

Vedi anche

Si applica a

RenderAsync(UIElement, Int32, Int32)

Esegue il rendering di uno snapshot di un albero visivo UIElement in un'origine immagine. Specificare i valori per scaledWidth e scaledHeight per modificare la dimensione di rendering dell'origine originale.

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

Parametri

element
UIElement

UIElement che rappresenta il frammento dell'albero visivo da eseguire per il rendering.

scaledWidth
Int32

int

Specifica la larghezza di destinazione in corrispondenza della quale eseguire il rendering. Il valore predefinito è 0. scaledWidth e/o scaledHeight può essere facoltativo; vedere Osservazioni.

scaledHeight
Int32

int

Specifica l'altezza di destinazione in corrispondenza della quale eseguire il rendering. Il valore predefinito è 0. scaledWidth e/o scaledHeight può essere facoltativo; vedere Osservazioni.

Restituisce

Oggetto IAsyncAction che è possibile usare per controllare l'operazione asincrona.

Attributi

Commenti

L'immagine di cui è stato eseguito il rendering non viene restituita da questo metodo. Ma dopo aver restituito, purché il valore stato asincrono non indichi un errore, il RenderingTargetBitmap che ha chiamato avrà informazioni sull'immagine valide. Il renderingTargetBitmap può quindi essere assegnato nel codice come origine immagine per un controllo Image o un'istanza di ImageBrush.

Se è necessaria una rappresentazione del buffer pixel del contenuto di rendering e non solo un'origine immagine, usare GetPixelsAsync dopo aver chiamato RenderAsync.

Si tratta di un metodo asincrono, quindi non esiste alcuna garanzia di sincronizzazione esatta dei frame con l'origine dell'interfaccia utente. Per informazioni su altre limitazioni, vedere Osservazioni in RenderTargetBitmap .

La chiamata a RenderingAsync avrà esito negativo se l'altezza o la larghezza ridimensionata dell'albero visivo UIElement sono maggiori della quantità di memoria video che il sistema è in grado di allocare internamente.

È possibile passare Null per il parametro dell'elemento e che esegue il rendering dell'albero visivo radice dell'app.

valori scaledWidth e scaledHeight

Se scaledWidth e scaledHeight sono entrambi impostati, le proporzioni della bitmap originale vengono ignorate e i valori possono modificare il rapporto di aspetto.

Se è stato specificato scaledWidth o scaledHeight, ma non entrambi, il valore specificato fornisce controlli della dimensione, ma la percentuale di aspetto viene mantenuta(l'altra dimensione viene calcolata in base al fattoreing del rapporto di aspetto della bitmap originale).

È possibile chiamare questo metodo e lasciare i valori scaledWidth e scaledHeight entrambi come 0. In questo caso, l'albero UIElement verrà eseguito il rendering in base alle dimensioni native. Si tratta dello stesso comportamento dell'overload RenderAsync(UIElement).

La dimensione massima di rendering di un albero visivo XAML è limitata dalle dimensioni massime di una trama Microsoft DirectX; per altre informazioni, vedere Limiti delle risorse (). Questo limite di risorse può variare a seconda dell'hardware in cui viene eseguita l'app. Contenuto molto grande che supera questo limite potrebbe essere ridimensionato per adattarsi. Se i limiti di ridimensionamento vengono applicati in questo modo, è possibile eseguire query sulle dimensioni del rendering dopo la scalabilità usando le proprietà PixelWidth e PixelHeight . Ad esempio, un albero visivo XAML da 10000 pixel può essere ridimensionato su 4096 per 4096 pixel, un esempio di un determinato limite di risorse sulle trame 2D da applicare.

Oggetti visivi XAML e funzionalità di acquisizione RenderTargetBitmap

Esistono alcuni scenari per il contenuto visivo composto da XAML che non è possibile acquisire in un RenderingTargetBitmap:

  • Il contenuto video in un oggetto MediaPlayerElement non può essere acquisito usando RenderTargetBitmap. Ciò include l'acquisizione di fotogrammi dall'interno del contenuto video.
  • Il contenuto Microsoft DirectX personalizzato (catena di scambio) all'interno di un oggetto SwapChainBackgroundPanel o SwapChainPanel non può essere acquisito usando RenderTargetBitmap.
  • Il contenuto presente nell'albero, ma con la relativa visibilità impostata su Compresso non verrà acquisito.
  • Il contenuto non è direttamente connesso all'albero visivo XAML e il contenuto della finestra principale non verrà acquisito. Ciò include il contenuto popup , considerato come una sotto finestra.
  • Per Windows Phone'app 8.x: il contenuto di un controllo WebView non può essere eseguito il rendering in una mappa RenderTargetBitmap.
  • Il contenuto che non può essere acquisito verrà visualizzato come vuoto nell'immagine acquisita, ma altri contenuti nello stesso albero visivo possono comunque essere acquisiti e eseguiranno il rendering (la presenza di contenuti che non possono essere acquisiti non invaliderà l'intera acquisizione di tale composizione XAML).
  • Il contenuto presente nell'albero visivo XAML, ma può essere acquisito, purché non = siavisibilità compresso o negli altri casi con restrizioni.

Vedi anche

Si applica a