RenderTargetBitmap.RenderAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| 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
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. Wenn der asynchrone Statuswert jedoch nicht auf einen Fehler hinweist, enthält die renderTargetBitmap , die aufgerufen wurde, gültige Bildinformationen. Die RenderTargetBitmap kann dann im Code als Bildquelle für ein Image-Steuerelement oder eine ImageBrush-Instanz 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 die genaue Framesynchronisierung mit der UI-Quelle besteht. Informationen zu anderen Einschränkungen finden Sie in den Hinweisen in RenderTargetBitmap .
Sie können NULL für den Elementparameter übergeben und die visuelle Stammstruktur der App rendert.
Visuelle XAML-Elemente und RenderTargetBitmap-Erfassungsfunktionen
Es gibt einige Szenarien für durch XAML verfasste visuelle Inhalte, die Sie nicht in einer RenderTargetBitmap erfassen können:
- Videoinhalte in einem MediaPlayerElement können nicht mithilfe von RenderTargetBitmap erfasst werden. Dazu gehört das Aufnehmen von Frames aus Videoinhalten.
- Benutzerdefinierte Microsoft DirectX-Inhalte (Ihre eigene Swapchain) in einem SwapChainBackgroundPanel- oder SwapChainPanel-Element können nicht mithilfe von RenderTargetBitmap erfasst werden.
- Inhalte, die sich in der Struktur befinden, aber mit der auf "Reduziert" festgelegten Sichtbarkeit werden nicht erfasst.
- Inhalte, die nicht direkt mit der visuellen XAML-Struktur verbunden sind, und der Inhalt des Hauptfensters wird nicht erfasst. Dazu gehören Popupinhalte , die als unterfenster angesehen werden.
- Inhalte, die nicht erfasst werden können, werden im aufgenommenen 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, führt nicht zur Ungültigkeit der gesamten Aufnahme dieser XAML-Komposition).
- Inhalte, die sich in der visuellen XAML-Struktur befinden, aber außerhalb des Bildschirms erfasst werden können, solange sie nichtreduziert oder in den anderen eingeschränkten Fällen nicht sichtbar = sind.
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
- scaledWidth
-
Int32
int
Gibt die Zielbreite an, an der gerendert werden soll. Der Standardwert lautet 0. scaledWidth und/oder scaledHeight kann optional sein; siehe Hinweise.
- scaledHeight
-
Int32
int
Gibt die Zielhöhe an, an der gerendert werden soll. Der Standardwert lautet 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. Wenn der asynchrone Statuswert jedoch nicht auf einen Fehler hinweist, enthält die renderTargetBitmap , die aufgerufen wurde, gültige Bildinformationen. Die RenderTargetBitmap kann dann im Code als Bildquelle für ein Image-Steuerelement oder eine ImageBrush-Instanz 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 die genaue Framesynchronisierung mit der UI-Quelle besteht. Informationen zu anderen Einschränkungen finden Sie in den Hinweisen in RenderTargetBitmap .
Das Aufrufen von RenderAsync schlägt fehl, wenn die skalierte Höhe oder Breite der visuellen UIElement-Struktur größer als die Menge des Videospeichers ist, den das System intern zuordnen kann.
Sie können NULL für den Elementparameter übergeben und 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 beide angegeben ist, wird der Wert, den Sie steuerelemente bereitstellen, die Dimension beibehalten, 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 scaledWidth - und scaledHeight-Werte beide als 0 belassen. In diesem Fall wird die UIElement-Struktur in ihrer systemeigenen 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 Ressourcenbeschränkungen (). Dieser Ressourcengrenzwert kann je nach 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 1000 Pixeln auf 4096 x 4096 Pixel skaliert werden, ein Beispiel für einen bestimmten Ressourcengrenzwert für 2D-Texturen, die angewendet werden.
Visuelle XAML-Elemente und RenderTargetBitmap-Erfassungsfunktionen
Es gibt einige Szenarien für durch XAML verfasste visuelle Inhalte, die Sie nicht in einer RenderTargetBitmap erfassen können:
- Videoinhalte in einem MediaPlayerElement können nicht mithilfe von RenderTargetBitmap erfasst werden. Dazu gehört das Aufnehmen von Frames aus Videoinhalten.
- Benutzerdefinierte Microsoft DirectX-Inhalte (Ihre eigene Swapchain) in einem SwapChainBackgroundPanel- oder SwapChainPanel-Element können nicht mithilfe von RenderTargetBitmap erfasst werden.
- Inhalte, die sich in der Struktur befinden, aber mit der auf "Reduziert" festgelegten Sichtbarkeit werden nicht erfasst.
- Inhalte, die nicht direkt mit der visuellen XAML-Struktur verbunden sind, und der Inhalt des Hauptfensters wird nicht erfasst. Dazu gehören Popupinhalte , die als unterfenster angesehen werden.
- 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 aufgenommenen 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, führt nicht zur Ungültigkeit der gesamten Aufnahme dieser XAML-Komposition).
- Inhalte, die sich in der visuellen XAML-Struktur befinden, aber außerhalb des Bildschirms erfasst werden können, solange sie nichtreduziert oder in den anderen eingeschränkten Fällen nicht sichtbar = sind.