RenderTargetBitmap.RenderAsync メソッド

定義

オーバーロード

RenderAsync(UIElement)

UIElement ビジュアル ツリーのスナップショットをイメージ ソースにレンダリングします。

RenderAsync(UIElement, Int32, Int32)

UIElement ビジュアル ツリーのスナップショットをイメージ ソースにレンダリングします。 scaledWidthscaledHeight の値を指定して、元のソースのレンダリング ディメンションを変更します。

RenderAsync(UIElement)

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

パラメーター

element
UIElement

レンダリングするビジュアル ツリー フラグメントを表す UIElement

戻り値

非同期操作を制御するために使用できる IAsyncAction オブジェクト。

属性

注釈

レンダリングされたイメージは、このメソッドによって返されません。 ただし、非同期 状態 の値がエラーを示さない限り、それが返された後、それを呼び出した RenderTargetBitmap には有効なイメージ情報が含まれます。 その後、 RenderTargetBitmap は、 Image コントロールまたは ImageBrush インスタンスのイメージ ソースとしてコードで割り当てることができます。

イメージ ソースだけでなく、レンダリングされたコンテンツのピクセル バッファー表現が必要な場合は、RenderAsync を呼び出した後 に GetPixelsAsync を 使用します。

これは非同期メソッドであるため、UI ソースとの正確なフレーム同期は保証されません。 その他の制限事項については、「 RenderTargetBitmap の解説」を参照してください。

要素パラメーターに null を渡すと、アプリのルート ビジュアル ツリーがレンダリングされます。

XAML ビジュアルと RenderTargetBitmap キャプチャ機能

XAML で構成されたビジュアル コンテンツには、 RenderTargetBitmap にキャプチャできないシナリオがいくつかあります。

  • MediaElement または CaptureElement 内のビデオ コンテンツは、RenderTargetBitmap を使用してキャプチャすることはできません。 これには、ビデオ コンテンツ内からのフレームのキャプチャが含まれます。
  • SwapChainBackgroundPanel または SwapChainPanel 内のカスタム Microsoft DirectX コンテンツ (独自のスワップ チェーン) は、RenderTargetBitmap を使用してキャプチャできません。
  • ツリー内にあるが、 表示 設定が Collapsed に設定されているコンテンツはキャプチャされません。
  • XAML ビジュアル ツリーに直接接続されていないコンテンツと、メイン ウィンドウのコンテンツはキャプチャされません。 これには、サブウィンドウのように見なされる ポップアップ コンテンツが含まれます。
  • Windows Phone 8.x アプリの場合: WebView コントロールの内容を RenderTargetBitmap にレンダリングすることはできません。
  • キャプチャできないコンテンツはキャプチャされたイメージでは空白として表示されますが、同じビジュアル ツリー内の他のコンテンツは引き続きキャプチャされ、レンダリングされます (キャプチャできないコンテンツが存在しても、その XAML コンポジションのキャプチャ全体が無効になることはありません)。
  • XAML ビジュアル ツリー内にあるがオフスクリーンのコンテンツは、表示 = が折りたたまれていないか、その他の制限付きケースでキャプチャできます。

こちらもご覧ください

適用対象

RenderAsync(UIElement, Int32, Int32)

UIElement ビジュアル ツリーのスナップショットをイメージ ソースにレンダリングします。 scaledWidthscaledHeight の値を指定して、元のソースのレンダリング ディメンションを変更します。

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

パラメーター

element
UIElement

レンダリングするビジュアル ツリー フラグメントを表す UIElement

scaledWidth
Int32

int

レンダリングするターゲットの幅を指定します。 既定値は 0 です。 scaledWidthscaledHeight は省略可能です。「解説」を参照してください。

scaledHeight
Int32

int

レンダリングするターゲットの高さを指定します。 既定値は 0 です。 scaledWidthscaledHeight は省略可能です。「解説」を参照してください。

戻り値

非同期操作を制御するために使用できる IAsyncAction オブジェクト。

属性

注釈

レンダリングされたイメージは、このメソッドによって返されません。 ただし、非同期 状態 の値がエラーを示さない限り、それが返された後、それを呼び出した RenderTargetBitmap には有効なイメージ情報が含まれます。 その後、 RenderTargetBitmap は、 Image コントロールまたは ImageBrush インスタンスのイメージ ソースとしてコードで割り当てることができます。

イメージ ソースだけでなく、レンダリングされたコンテンツのピクセル バッファー表現が必要な場合は、RenderAsync を呼び出した後に GetPixelsAsync を使用します。

これは非同期メソッドであるため、UI ソースとの正確なフレーム同期は保証されません。 その他の制限事項については、「 RenderTargetBitmap の解説」を参照してください。

UIElement ビジュアル ツリーのスケーリングされた高さまたは幅が、システムが内部的に割り当てることができるビデオ メモリの量よりも大きい場合、RenderAsync の呼び出しは失敗します。

要素パラメーターに null を渡すと、アプリのルート ビジュアル ツリーがレンダリングされます。

scaledWidthscaledHeight の値

scaledWidthscaledHeight の両方が設定されている場合、元のビットマップの縦横比は無視され、値によって縦横比が変更される可能性があります。

scaledWidth または scaledHeight の両方が指定されていない場合、指定した値はその寸法を制御しますが、縦横比は保持されます (もう一方のディメンションは、元のビットマップの縦横比を考慮して計算されます)。

このメソッドを呼び出し、 scaledWidthscaledHeight の 両方の値を 0 のままにすることができます。 この場合、 UIElement ツリーはネイティブ サイズでレンダリングされます。 これは、 RenderAsync(UIElement) オーバーロードと同じ動作です。

XAML ビジュアル ツリーのレンダリングされる最大サイズは、Microsoft DirectX テクスチャの最大サイズによって制限されます。詳細については、「 リソースの制限 ()」を参照してください。 このリソース制限は、アプリが実行されているハードウェアによって異なる場合があります。 この制限を超える非常に大きなコンテンツは、収まるようにスケーリングされる可能性があります。 このようにスケーリング制限が適用されている場合は、 PixelWidth プロパティと PixelHeight プロパティを使用して、スケーリング後にレンダリングされるサイズを照会できます。 たとえば、10000 x 1,0000 ピクセルの XAML ビジュアル ツリーを 4096 x 4096 ピクセルにスケーリングできます。これは、適用される 2D テクスチャに対する特定のリソース制限の例です。

XAML ビジュアルと RenderTargetBitmap キャプチャ機能

XAML で構成されたビジュアル コンテンツには、 RenderTargetBitmap にキャプチャできないシナリオがいくつかあります。

  • MediaElement または CaptureElement 内のビデオ コンテンツは、RenderTargetBitmap を使用してキャプチャすることはできません。 これには、ビデオ コンテンツ内からのフレームのキャプチャが含まれます。
  • SwapChainBackgroundPanel または SwapChainPanel 内のカスタム Microsoft DirectX コンテンツ (独自のスワップ チェーン) は、RenderTargetBitmap を使用してキャプチャできません。
  • ツリー内にあるが、 表示 設定が Collapsed に設定されているコンテンツはキャプチャされません。
  • XAML ビジュアル ツリーに直接接続されていないコンテンツと、メイン ウィンドウのコンテンツはキャプチャされません。 これには、サブウィンドウのように見なされる ポップアップ コンテンツが含まれます。
  • Windows Phone 8.x アプリの場合: WebView コントロールの内容を RenderTargetBitmap にレンダリングすることはできません。
  • キャプチャできないコンテンツはキャプチャされたイメージでは空白として表示されますが、同じビジュアル ツリー内の他のコンテンツは引き続きキャプチャされ、レンダリングされます (キャプチャできないコンテンツが存在しても、その XAML コンポジションのキャプチャ全体が無効になることはありません)。
  • XAML ビジュアル ツリー内にあるがオフスクリーンのコンテンツは、表示 = が折りたたまれていないか、その他の制限付きケースでキャプチャできます。

こちらもご覧ください

適用対象