次の方法で共有


RenderTargetBitmap.RenderAsync メソッド

定義

オーバーロード

RenderAsync(UIElement)

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

RenderAsync(UIElement, Int32, Int32)

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

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にキャプチャできないシナリオがいくつかあります。

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

こちらもご覧ください

適用対象

RenderAsync(UIElement, Int32, Int32)

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

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 です。 scaledWidth や scaledHeight は省略可能です。「解説」を参照してください。

scaledHeight
Int32

int

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

戻り値

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

属性

注釈

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

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

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

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

パラメーター 要素 null を渡して、アプリのルート ビジュアル ツリーをレンダリングできます。

scaledWidth と scaledHeight 値 する

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

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

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

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

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

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

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

こちらもご覧ください

適用対象