Bagikan melalui


RenderTargetBitmap.RenderAsync Metode

Definisi

Overload

RenderAsync(UIElement)

Merender rekam jepret pohon visual UIElement ke sumber gambar.

RenderAsync(UIElement, Int32, Int32)

Merender rekam jepret pohon visual UIElement ke sumber gambar. Tentukan nilai untuk scaledWidth dan scaledHeight untuk mengubah dimensi penyajian sumber asli.

RenderAsync(UIElement)

Merender rekam jepret pohon visual UIElement ke sumber gambar.

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

UIElement yang mewakili fragmen pohon visual untuk dirender.

Mengembalikan

Objek IAsyncAction yang dapat Anda gunakan untuk mengontrol operasi asinkron.

Atribut

Keterangan

Gambar yang dirender tidak dikembalikan oleh metode ini. Tetapi setelah kembali, selama nilai Status asinkron tidak menunjukkan kesalahan, RenderTargetBitmap yang menyebutnya akan memiliki info gambar yang valid. RenderTargetBitmap kemudian dapat ditetapkan dalam kode sebagai sumber gambar untuk kontrol Gambar atau instans ImageBrush.

Jika Anda memerlukan representasi buffer piksel dari konten yang dirender dan bukan hanya sumber gambar, gunakan GetPixelsAsync setelah memanggil RenderAsync.

Ini adalah metode asinkron, jadi tidak ada jaminan sinkronisasi bingkai yang tepat dengan sumber UI. Lihat Keterangan di RenderTargetBitmap untuk informasi tentang beberapa batasan lainnya.

Anda dapat meneruskan null untuk parameter elemen , dan yang merender pohon visual akar aplikasi.

Visual XAML dan kemampuan penangkapan RenderTargetBitmap

Ada beberapa skenario untuk konten visual yang disusun XAML yang tidak dapat Anda ambil ke RenderTargetBitmap:

  • Konten video di MediaElement atau CaptureElement tidak dapat diambil menggunakan RenderTargetBitmap. Itu termasuk menangkap bingkai dari dalam konten video.
  • Konten Microsoft DirectX kustom (rantai pertukaran Anda sendiri) di dalam SwapChainBackgroundPanel atau SwapChainPanel tidak dapat ditangkap menggunakan RenderTargetBitmap.
  • Konten yang ada di pohon tetapi dengan Visibilitasnya diatur ke Diciutkan tidak akan diambil.
  • Konten yang tidak terhubung langsung ke pohon visual XAML dan konten jendela utama tidak akan ditangkap. Ini termasuk konten Popup , yang dianggap seperti sub-jendela.
  • Untuk aplikasi Windows Phone 8.x: konten kontrol WebView tidak dapat dirender ke dalam RenderTargetBitmap.
  • Konten yang tidak dapat diambil akan muncul sebagai kosong dalam gambar yang diambil, tetapi konten lain di pohon visual yang sama masih dapat ditangkap dan akan dirender (keberadaan konten yang tidak dapat ditangkap tidak akan membatalkan seluruh pengambilan komposisi XAML tersebut).
  • Konten yang ada di pohon visual XAML tetapi di luar layar dapat diambil, selama tidak Visibilitas = Diciutkan atau dalam kasus terbatas lainnya.

Lihat juga

Berlaku untuk

RenderAsync(UIElement, Int32, Int32)

Merender rekam jepret pohon visual UIElement ke sumber gambar. Tentukan nilai untuk scaledWidth dan scaledHeight untuk mengubah dimensi penyajian sumber asli.

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

UIElement yang mewakili fragmen pohon visual untuk dirender.

scaledWidth
Int32

int

Menentukan lebar target untuk dirender. Defaultnya adalah 0. scaledWidth dan/atau scaledHeight dapat bersifat opsional; lihat Keterangan.

scaledHeight
Int32

int

Menentukan tinggi target untuk dirender. Defaultnya adalah 0. scaledWidth dan/atau scaledHeight dapat bersifat opsional; lihat Keterangan.

Mengembalikan

Objek IAsyncAction yang dapat Anda gunakan untuk mengontrol operasi asinkron.

Atribut

Keterangan

Gambar yang dirender tidak dikembalikan oleh metode ini. Tetapi setelah kembali, selama nilai Status asinkron tidak menunjukkan kesalahan, RenderTargetBitmap yang menyebutnya akan memiliki info gambar yang valid. RenderTargetBitmap kemudian dapat ditetapkan dalam kode sebagai sumber gambar untuk kontrol Gambar atau instans ImageBrush.

Jika Anda memerlukan representasi buffer piksel dari konten yang dirender dan bukan hanya sumber gambar, gunakan GetPixelsAsync setelah memanggil RenderAsync.

Ini adalah metode asinkron, jadi tidak ada jaminan sinkronisasi bingkai yang tepat dengan sumber UI. Lihat Keterangan di RenderTargetBitmap untuk informasi tentang beberapa batasan lainnya.

Memanggil RenderAsync akan gagal jika tinggi atau lebar pohon visual UIElement berskala lebih besar dari jumlah memori video yang dapat dialokasikan sistem secara internal.

Anda dapat meneruskan null untuk parameter elemen , dan yang merender pohon visual akar aplikasi.

nilai scaledWidth dan scaledHeight

Jika scaledWidth dan scaledHeight keduanya ditetapkan, rasio aspek bitmap asli diabaikan, dan nilai Anda dapat mengubah rasio aspek.

Jika scaledWidth atau scaledHeight tetapi tidak keduanya ditentukan, nilai yang Anda berikan mengontrol dimensi tersebut tetapi rasio aspek dipertahankan (dimensi lainnya dihitung berdasarkan faktor rasio aspek bitmap asli).

Anda dapat memanggil metode ini dan membiarkan nilai scaledWidth dan scaledHeight keduanya sebagai 0. Dalam hal ini pohon UIElement akan dirender pada ukuran aslinya. Ini adalah perilaku yang sama dengan kelebihan beban RenderAsync(UIElement ).

Ukuran maksimum pohon visual XAML yang dirender dibatasi oleh dimensi maksimum tekstur Microsoft DirectX; untuk informasi selengkapnya lihat Batas Sumber Daya (). Batas sumber daya ini dapat bervariasi tergantung pada perangkat keras tempat aplikasi berjalan. Konten yang sangat besar yang melebihi batas ini mungkin diskalakan agar pas. Jika batas penskalan diterapkan dengan cara ini, ukuran yang dirender setelah penskalakan dapat dikueri menggunakan properti PixelWidth dan PixelHeight . Misalnya, pohon visual XAML 10000 kali 10000 piksel mungkin diskalakan ke 4096 kali 4096 piksel, contoh batas sumber daya tertentu pada tekstur 2D yang diterapkan.

Visual XAML dan kemampuan penangkapan RenderTargetBitmap

Ada beberapa skenario untuk konten visual yang disusun XAML yang tidak dapat Anda ambil ke RenderTargetBitmap:

  • Konten video di MediaElement atau CaptureElement tidak dapat diambil menggunakan RenderTargetBitmap. Itu termasuk menangkap bingkai dari dalam konten video.
  • Konten Microsoft DirectX kustom (rantai pertukaran Anda sendiri) di dalam SwapChainBackgroundPanel atau SwapChainPanel tidak dapat ditangkap menggunakan RenderTargetBitmap.
  • Konten yang ada di pohon tetapi dengan Visibilitasnya diatur ke Diciutkan tidak akan diambil.
  • Konten yang tidak terhubung langsung ke pohon visual XAML dan konten jendela utama tidak akan ditangkap. Ini termasuk konten Popup , yang dianggap seperti sub-jendela.
  • Untuk aplikasi Windows Phone 8.x: konten kontrol WebView tidak dapat dirender ke dalam RenderTargetBitmap.
  • Konten yang tidak dapat diambil akan muncul sebagai kosong dalam gambar yang diambil, tetapi konten lain di pohon visual yang sama masih dapat ditangkap dan akan dirender (keberadaan konten yang tidak dapat ditangkap tidak akan membatalkan seluruh pengambilan komposisi XAML tersebut).
  • Konten yang ada di pohon visual XAML tetapi di luar layar dapat diambil, selama tidak Visibilitas = Diciutkan atau dalam kasus terbatas lainnya.

Lihat juga

Berlaku untuk