RenderTargetBitmap.RenderAsync 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
RenderAsync(UIElement) |
UIElement 시각적 트리의 스냅샷 이미지 원본에 렌더링합니다. |
RenderAsync(UIElement, Int32, Int32) |
UIElement 시각적 트리의 스냅샷 이미지 원본에 렌더링합니다. scaledWidth 및 scaledHeight 값을 지정하여 원래 원본의 렌더링 차원을 변경합니다. |
RenderAsync(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 개체입니다.
- 특성
설명
렌더링된 이미지는 이 메서드에서 반환되지 않습니다. 그러나 비동기 상태 값이 오류를 나타내지 않는 한 반환된 후에는 이를 호출한 RenderTargetBitmap 에 유효한 이미지 정보가 있습니다. 그런 다음 RenderTargetBitmap을 코드에서 이미지 컨트롤 또는 ImageBrush instance 대한 이미지 원본으로 할당할 수 있습니다.
이미지 원본뿐만 아니라 렌더링된 콘텐츠의 픽셀 버퍼 표현이 필요한 경우 RenderAsync를 호출한 후 GetPixelsAsync 를 사용합니다.
이는 비동기 메서드이므로 UI 원본과의 정확한 프레임 동기화가 보장되지 않습니다. 다른 제한 사항에 대한 자세한 내용은 RenderTargetBitmap 의 비고를 참조하세요.
요소 매개 변수에 대해 null을 전달할 수 있으며 앱의 루트 시각적 트리를 렌더링합니다.
XAML 시각적 개체 및 RenderTargetBitmap 캡처 기능
RenderTargetBitmap에 캡처할 수 없는 XAML로 구성된 시각적 콘텐츠에 대한 몇 가지 시나리오가 있습니다.
- MediaPlayerElement의 비디오 콘텐츠는 RenderTargetBitmap을 사용하여 캡처할 수 없습니다. 여기에는 비디오 콘텐츠 내에서 프레임 캡처가 포함됩니다.
- SwapChainBackgroundPanel 또는 SwapChainPanel 내의 사용자 지정 Microsoft DirectX 콘텐츠(사용자 고유의 스왑 체인)는 RenderTargetBitmap을 사용하여 캡처할 수 없습니다.
- 트리에 있지만 표시 유형 이 Collapsed 로 설정된 콘텐츠는 캡처되지 않습니다.
- XAML 시각적 트리에 직접 연결되지 않은 콘텐츠와 기본 창의 콘텐츠는 캡처되지 않습니다. 여기에는 하위 창처럼 간주되는 팝업 콘텐츠가 포함됩니다.
- 캡처할 수 없는 콘텐츠는 캡처된 이미지에 비어 있는 것으로 표시되지만 동일한 시각적 트리의 다른 콘텐츠는 여전히 캡처되고 렌더링됩니다(캡처할 수 없는 콘텐츠의 존재는 해당 XAML 컴퍼지션의 전체 캡처를 무효화하지 않음).
- XAML 시각적 트리에 있지만 화면 외의 콘텐츠는 표시 유형 = 축소 가 아니거나 다른 제한된 경우에 캡처할 수 있습니다.
추가 정보
적용 대상
RenderAsync(UIElement, Int32, Int32)
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 개체입니다.
- 특성
설명
렌더링된 이미지는 이 메서드에서 반환되지 않습니다. 그러나 비동기 상태 값이 오류를 나타내지 않는 한 반환된 후에는 이를 호출한 RenderTargetBitmap 에 유효한 이미지 정보가 있습니다. 그런 다음 RenderTargetBitmap을 코드에서 이미지 컨트롤 또는 ImageBrush instance 대한 이미지 원본으로 할당할 수 있습니다.
이미지 원본뿐만 아니라 렌더링된 콘텐츠의 픽셀 버퍼 표현이 필요한 경우 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 시각적 트리는 적용 중인 2D 텍스처에 대한 특정 리소스 제한의 예인 4096x4096 픽셀로 스케일링될 수 있습니다.
XAML 시각적 개체 및 RenderTargetBitmap 캡처 기능
RenderTargetBitmap에 캡처할 수 없는 XAML로 구성된 시각적 콘텐츠에 대한 몇 가지 시나리오가 있습니다.
- MediaPlayerElement의 비디오 콘텐츠는 RenderTargetBitmap을 사용하여 캡처할 수 없습니다. 여기에는 비디오 콘텐츠 내에서 프레임 캡처가 포함됩니다.
- SwapChainBackgroundPanel 또는 SwapChainPanel 내의 사용자 지정 Microsoft DirectX 콘텐츠(사용자 고유의 스왑 체인)는 RenderTargetBitmap을 사용하여 캡처할 수 없습니다.
- 트리에 있지만 표시 유형 이 Collapsed 로 설정된 콘텐츠는 캡처되지 않습니다.
- XAML 시각적 트리에 직접 연결되지 않은 콘텐츠와 기본 창의 콘텐츠는 캡처되지 않습니다. 여기에는 하위 창처럼 간주되는 팝업 콘텐츠가 포함됩니다.
- Windows Phone 8.x 앱의 경우: WebView 컨트롤의 콘텐츠를 RenderTargetBitmap으로 렌더링할 수 없습니다.
- 캡처할 수 없는 콘텐츠는 캡처된 이미지에 비어 있는 것으로 표시되지만 동일한 시각적 트리의 다른 콘텐츠는 여전히 캡처되고 렌더링됩니다(캡처할 수 없는 콘텐츠의 존재는 해당 XAML 컴퍼지션의 전체 캡처를 무효화하지 않음).
- XAML 시각적 트리에 있지만 화면 외의 콘텐츠는 표시 유형 = 축소 가 아니거나 다른 제한된 경우에 캡처할 수 있습니다.