RenderTargetBitmap.RenderAsync 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
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
參數
傳回
IAsyncAction 物件,可用來控制異步操作。
- 屬性
備註
這個方法不會傳迴轉譯的影像。 但在傳回之後,只要異步 Status 值沒有指出錯誤,RenderTargetBitmap 呼叫它就會有有效的影像資訊。 接著,RenderTargetBitmap 可以在程式代碼中指派為 Image 控件的影像來源,或 ImageBrush 實例。
如果您需要轉譯內容的像素緩衝區表示法,而不只是影像來源,請在呼叫 RenderAsync 之後,使用 GetPixelsAsync。
這是異步方法,因此不保證與UI來源的確切畫面同步處理。 如需其他一些限制的詳細資訊,請參閱 renderTargetBitmap 中的備註。
您可以傳遞 null 給 元素 參數,並轉譯應用程式的根可視化樹狀結構。
XAML 視覺效果和 RenderTargetBitmap 擷取功能
XAML 撰寫的視覺內容有幾個案例,您無法擷取到 RenderTargetBitmap:
MediaPlayerElement 中的視訊內容無法使用 RenderTargetBitmap來擷取。 這包括從視訊內容中擷取畫面。 SwapChainBackgroundPanel 或SwapChainPanel 內的自定義 Microsoft DirectX 內容(您自己的交換鏈結)無法使用 RenderTargetBitmap來擷取。 - 樹狀結構中的內容,但其 Visibility 設定為 [折疊 將不會擷取。
- 不會直接連線到 XAML 可視化樹狀結構的內容,而且不會擷取主視窗的內容。 這包括 快顯 內容,這被視為像是子視窗。
- 無法擷取的內容會在擷取的影像中顯示為空白,但相同可視化樹狀結構中的其他內容仍可擷取並轉譯(無法擷取的內容不會使該 XAML 組合的整個擷取失效)。
- XAML 可視化樹狀結構中但螢幕外的內容可以擷取,只要它不會 Visibility = Collapsed 或其他限制案例中。
另請參閱
適用於
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
參數
- scaledWidth
-
Int32
int
指定要呈現的目標寬度。 預設值為 0。 scaledWidth 和/或 scaledHeight 可以是選擇性的;請參閱。
- scaledHeight
-
Int32
int
指定要呈現的目標高度。 預設值為 0。 scaledWidth 和/或 scaledHeight 可以是選擇性的;請參閱。
傳回
IAsyncAction 物件,可用來控制異步操作。
- 屬性
備註
這個方法不會傳迴轉譯的影像。 但在傳回之後,只要異步 Status 值沒有指出錯誤,RenderTargetBitmap 呼叫它就會有有效的影像資訊。 接著,RenderTargetBitmap 可以在程式代碼中指派為 Image 控件的影像來源,或 ImageBrush 實例。
如果您需要轉譯內容的像素緩衝區表示法,而不只是影像來源,請在 呼叫 RenderAsync之後,使用 GetPixelsAsync 。
這是異步方法,因此不保證與UI來源的確切畫面同步處理。 如需其他一些限制的詳細資訊,請參閱 renderTargetBitmap 中的備註。
如果 UIElement 的縮放高度或寬度 可視化樹狀結構大於系統內部配置的視訊記憶體數量,呼叫 RenderAsync 將會失敗。
您可以傳遞 null 給 元素 參數,並轉譯應用程式的根可視化樹狀結構。
scaledWidth 和 scaledHeight 值
如果同時設定 scaledWidth 和 scaledHeight,則會忽略原始位圖的外觀比例,而且您的值可以改變外觀比例。
如果 scaledWidth 或 scaledHeight 但未同時指定兩者,則您提供該維度但外觀比例保留的值(另一個維度是根據計算原始位圖外觀比例計算的)。
您可以呼叫此方法,並將 scaledWidth 和 scaledHeight 值保留為 0。 在此情況下,UIElement 樹狀結構將會以其原生大小呈現。 這與 RenderAsync(UIElement) 多載的行為相同。
XAML 可視化樹狀結構的最大轉譯大小會受限於 Microsoft DirectX 紋理的最大維度;如需詳細資訊,請參閱 資源限制 ()。 此資源限制可能會因應用程式執行所在的硬體而有所不同。 超過此限制的極大型內容可能會調整為符合。 如果以此方式套用縮放限制,則可以使用 PixelWidth 和 PixelHeight 属性來查詢縮放後的轉譯大小。 例如,10000 x 10000 像素的 XAML 可視化樹狀結構可能會縮放為 4096 x 4096 像素,例如套用 2D 紋理的特定資源限制。
XAML 視覺效果和 RenderTargetBitmap 擷取功能
XAML 撰寫的視覺內容有幾個案例,您無法擷取到 RenderTargetBitmap:
MediaPlayerElement 中的視訊內容無法使用 RenderTargetBitmap來擷取。 這包括從視訊內容中擷取畫面。 SwapChainBackgroundPanel 或SwapChainPanel 內的自定義 Microsoft DirectX 內容(您自己的交換鏈結)無法使用 RenderTargetBitmap來擷取。 - 樹狀結構中的內容,但其 Visibility 設定為 [折疊 將不會擷取。
- 不會直接連線到 XAML 可視化樹狀結構的內容,而且不會擷取主視窗的內容。 這包括 快顯 內容,這被視為像是子視窗。
- 對於 Windows Phone 8.x 應用程式:WebView 控件的內容無法轉譯為 RenderTargetBitmap。
- 無法擷取的內容會在擷取的影像中顯示為空白,但相同可視化樹狀結構中的其他內容仍可擷取並轉譯(無法擷取的內容不會使該 XAML 組合的整個擷取失效)。
- XAML 可視化樹狀結構中但螢幕外的內容可以擷取,只要它不會 Visibility = Collapsed 或其他限制案例中。