Freigeben über


RenderTargetBitmap.RenderAsync Methode

Definition

Überlädt

RenderAsync(UIElement)

Rendert eine Momentaufnahme einer visuellen UIElement-Struktur in einer Bildquelle.

RenderAsync(UIElement, Int32, Int32)

Rendert eine Momentaufnahme einer visuellen UIElement-Struktur in einer Bildquelle. Geben Sie Werte für scaledWidth und scaledHeight an, um die Renderingdimension der ursprünglichen Quelle zu ändern.

RenderAsync(UIElement)

Rendert eine Momentaufnahme einer visuellen UIElement-Struktur in einer Bildquelle.

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

Parameter

element
UIElement

Ein UIElement , das das zu rendernde visuelle Strukturfragment darstellt.

Gibt zurück

Ein IAsyncAction-Objekt , mit dem Sie den asynchronen Vorgang steuern können.

Attribute

Hinweise

Das gerenderte Bild wird von dieser Methode nicht zurückgegeben. Nach der Rückgabe verfügt die RenderTargetBitmap, die aufgerufen wurde, über gültige Bildinformationen, solange der wert für den asynchronen Status nicht auf einen Fehler hinweist. Die RenderTargetBitmap kann dann im Code als Bildquelle für ein Image-Steuerelement oder imageBrush-instance zugewiesen werden.

Wenn Sie eine Pixelpufferdarstellung des gerenderten Inhalts und nicht nur eine Bildquelle benötigen, verwenden Sie GetPixelsAsync nach dem Aufruf von RenderAsync.

Dies ist eine asynchrone Methode, sodass keine Garantie für eine exakte Framesynchronisierung mit der Ui-Quelle besteht. Informationen zu anderen Einschränkungen finden Sie unter Hinweise in RenderTargetBitmap .

Sie können NULL für den Elementparameter übergeben, der die visuelle Stammstruktur der App rendert.

XAML-Visuals und RenderTargetBitmap-Erfassungsfunktionen

Es gibt einige Szenarien für XAML-zusammengestellte visuelle Inhalte, die Sie nicht in einer RenderTargetBitmap erfassen können:

  • Videoinhalte in einem MediaPlayerElement können nicht mit RenderTargetBitmap erfasst werden. Dies schließt das Erfassen von Frames innerhalb von Videoinhalten ein.
  • Benutzerdefinierte Microsoft DirectX-Inhalte (Ihre eigene Swap chain) in einem SwapChainBackgroundPanel oder SwapChainPanel können nicht mit RenderTargetBitmap erfasst werden.
  • Inhalte, die sich in der Struktur befindet, aber die Sichtbarkeit auf Reduziert festgelegt ist, werden nicht erfasst.
  • Inhalte, die nicht direkt mit der visuellen XAML-Struktur verbunden sind, und der Inhalt des Standard Fensters werden nicht erfasst. Dies schließt Popupinhalte ein, die wie ein Unterfenster gelten.
  • Inhalte, die nicht erfasst werden können, werden im erfassten Bild als leer angezeigt, aber andere Inhalte in derselben visuellen Struktur können weiterhin erfasst und gerendert werden (das Vorhandensein von Inhalten, die nicht erfasst werden können, ungültig macht nicht die gesamte Erfassung dieser XAML-Komposition).
  • Inhalte, die sich in der visuellen XAML-Struktur befinden, aber außerhalb des Bildschirms sind, können erfasst werden, solange es sich nicht um Visibility = Collapsed oder in den anderen eingeschränkten Fällen handelt.

Weitere Informationen

Gilt für:

RenderAsync(UIElement, Int32, Int32)

Rendert eine Momentaufnahme einer visuellen UIElement-Struktur in einer Bildquelle. Geben Sie Werte für scaledWidth und scaledHeight an, um die Renderingdimension der ursprünglichen Quelle zu ändern.

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

Parameter

element
UIElement

Ein UIElement , das das zu rendernde visuelle Strukturfragment darstellt.

scaledWidth
Int32

int

Gibt die Zielbreite an, mit der gerendert werden soll. Die Standardeinstellung ist 0. scaledWidth und/oder scaledHeight kann optional sein. siehe Hinweise.

scaledHeight
Int32

int

Gibt die Zielhöhe an, in der gerendert werden soll. Die Standardeinstellung ist 0. scaledWidth und/oder scaledHeight kann optional sein. siehe Hinweise.

Gibt zurück

Ein IAsyncAction-Objekt , mit dem Sie den asynchronen Vorgang steuern können.

Attribute

Hinweise

Das gerenderte Bild wird von dieser Methode nicht zurückgegeben. Nach der Rückgabe verfügt die RenderTargetBitmap, die aufgerufen wurde, über gültige Bildinformationen, solange der wert für den asynchronen Status nicht auf einen Fehler hinweist. Die RenderTargetBitmap kann dann im Code als Bildquelle für ein Image-Steuerelement oder imageBrush-instance zugewiesen werden.

Wenn Sie eine Pixelpufferdarstellung des gerenderten Inhalts und nicht nur eine Bildquelle benötigen, verwenden Sie GetPixelsAsync nach dem Aufruf von RenderAsync.

Dies ist eine asynchrone Methode, sodass keine Garantie für eine exakte Framesynchronisierung mit der Ui-Quelle besteht. Informationen zu anderen Einschränkungen finden Sie unter Hinweise in RenderTargetBitmap .

Beim Aufrufen von RenderAsync tritt ein Fehler auf, wenn die skalierte Höhe oder Breite der visuellen UIElement-Struktur größer ist als die Menge an Videospeicher, die das System intern zuordnen kann.

Sie können NULL für den Elementparameter übergeben, der die visuelle Stammstruktur der App rendert.

scaledWidth- und scaledHeight-Werte

Wenn scaledWidth und scaledHeight festgelegt sind, wird das Seitenverhältnis der ursprünglichen Bitmap ignoriert, und Ihre Werte können das Seitenverhältnis ändern.

Wenn entweder scaledWidth oder scaledHeight , aber nicht beides angegeben ist, steuert der Wert, den Sie bereitstellen, diese Dimension, aber das Seitenverhältnis wird beibehalten (die andere Dimension wird basierend auf der Faktorierung des Seitenverhältnisses der ursprünglichen Bitmap berechnet).

Sie können diese Methode aufrufen und die Werte scaledWidth und scaledHeight als 0 belassen. In diesem Fall wird die UIElement-Struktur in ihrer nativen Größe gerendert. Dies ist das gleiche Verhalten wie die RenderAsync(UIElement)- Überladung.

Die maximale gerenderte Größe einer visuellen XAML-Struktur wird durch die maximalen Dimensionen einer Microsoft DirectX-Textur eingeschränkt. weitere Informationen finden Sie unter Ressourcenlimits (). Dieses Ressourcenlimit kann abhängig von der Hardware variieren, auf der die App ausgeführt wird. Sehr große Inhalte, die diesen Grenzwert überschreiten, können entsprechend skaliert werden. Wenn Skalierungsgrenzwerte auf diese Weise angewendet werden, kann die gerenderte Größe nach der Skalierung mithilfe der PixelWidth - und PixelHeight-Eigenschaften abgefragt werden. Beispielsweise kann eine visuelle XAML-Struktur von 10000 x 10000 Pixeln auf 4096 x 4096 Pixel skaliert werden, ein Beispiel für ein bestimmtes Ressourcenlimit für 2D-Texturen, die angewendet werden.

XAML-Visuals und RenderTargetBitmap-Erfassungsfunktionen

Es gibt einige Szenarien für XAML-zusammengestellte visuelle Inhalte, die Sie nicht in einer RenderTargetBitmap erfassen können:

  • Videoinhalte in einem MediaPlayerElement können nicht mit RenderTargetBitmap erfasst werden. Dies schließt das Erfassen von Frames innerhalb von Videoinhalten ein.
  • Benutzerdefinierte Microsoft DirectX-Inhalte (Ihre eigene Swap chain) in einem SwapChainBackgroundPanel oder SwapChainPanel können nicht mit RenderTargetBitmap erfasst werden.
  • Inhalte, die sich in der Struktur befindet, aber die Sichtbarkeit auf Reduziert festgelegt ist, werden nicht erfasst.
  • Inhalte, die nicht direkt mit der visuellen XAML-Struktur verbunden sind, und der Inhalt des Standard Fensters werden nicht erfasst. Dies schließt Popupinhalte ein, die wie ein Unterfenster gelten.
  • Für Windows Phone 8.x-App: Der Inhalt eines WebView-Steuerelements kann nicht in eine RenderTargetBitmap gerendert werden.
  • Inhalte, die nicht erfasst werden können, werden im erfassten Bild als leer angezeigt, aber andere Inhalte in derselben visuellen Struktur können weiterhin erfasst und gerendert werden (das Vorhandensein von Inhalten, die nicht erfasst werden können, ungültig macht nicht die gesamte Erfassung dieser XAML-Komposition).
  • Inhalte, die sich in der visuellen XAML-Struktur befinden, aber außerhalb des Bildschirms sind, können erfasst werden, solange es sich nicht um Visibility = Collapsed oder in den anderen eingeschränkten Fällen handelt.

Weitere Informationen

Gilt für: