AppWindow 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
앱 콘텐츠에 대한 시스템 관리 컨테이너를 나타냅니다.
public ref class AppWindow sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 524288)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class AppWindow final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 524288)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class AppWindow
Public NotInheritable Class AppWindow
- 상속
- 특성
Windows 요구 사항
디바이스 패밀리 |
Windows 10, version 1903 (10.0.18362.0에서 도입되었습니다.)
|
API contract |
Windows.Foundation.UniversalApiContract (v8.0에서 도입되었습니다.)
|
설명
참고
AppWindow는 현재 미리 보기로 제공됩니다. 따라서 AppWindow를 사용하는 앱을 Microsoft Store에 제출할 수 있지만, 일부 플랫폼 및 프레임워크 구성 요소는 AppWindow에서 작동하지 않는 것으로 알려져 있습니다(제한 사항 참조).
두 개 이상의 창이 있는 경우 AppWindow를 사용하여 Windows 런타임 앱의 표시된 부분을 나타낼 수 있습니다. ApplicationView와 비슷하지만 동작과 수명이 동일하지는 않습니다.
ApplicationView와 달리 각 AppWindow에는 해당 CoreWindow가 없습니다. 모두 생성된 동일한 UI 처리 스레드(이벤트 디스패처 포함)를 공유합니다.
이 형식의 개체를 가져오려면 AppWindow.TryCreateAsync를 호출합니다.
AppWindow에 콘텐츠를 연결하려면 ElementCompositionPreview.SetAppWindowContent를 호출합니다.
AppWindow에만 XAML 콘텐츠를 연결할 수 있으며, 네이티브 DirectX 또는 Holographic 콘텐츠는 지원되지 않습니다.
앱 창의 기본 최소 크기를 지정하려면 WindowManagementPreview.SetPreferredMinSize 메서드를 사용합니다.
팁
AppWindow를 보여 주는 자세한 정보 및 코드는 앱에 대한 여러 보기 표시 및 AppWindow를 사용하여 여러 보기 표시를 참조하세요.
AppWindow API를 사용하는 방법을 보여 주는 샘플은 샘플 /AppWindow 아래 GitHub의 Windows 유니버설 샘플 리포지토리에서 찾을 수 있습니다.
제한 사항
AppWindow의 현재 미리 보기 버전의 제한 사항은 다음과 같습니다(완전하지 않은 목록임).
- 현재 보기는 AppWindow와 별도의 엔터티인 ApplicationView를 참조하므로 GetForCurrentView 패턴을 사용하는 API는 AppWindow에서 작동하지 않습니다.
- MediaElement 또는 MediaPlayerElement에서는 전체 화면 미디어 재생을 사용할 수 없습니다.
- MessageDialog는 올바른 창으로 모달되지 않습니다. 대신 ContentDialog 를 사용하는 것이 좋습니다.
- WebView는 완전히 지원되지 않습니다. in-proc WebView를 사용할 수 있지만 정적 HTML 콘텐츠 이외의 모든 항목이 제대로 작동하거나 작동하지 않을 수 있습니다.
- XAML에서 Window.Current.Content 속성을 설정하면 AppWindow의 모든 XAML 콘텐츠가 삭제됩니다. AppWindow를 사용하는 경우 앱을 일시 중단할 때 콘텐츠를 다시 설정하는 패턴으로 사용하지 마세요.
- 부드러운 창 크기 조정이 AppWindows에서 작동하지 않습니다. 프레임과 콘텐츠의 크기가 독립적으로 조정되므로 콘텐츠 레이아웃이 느려지면 폴리싱되지 않은 것처럼 보일 수 있습니다.
- AppWindow에는 DisplayInformation에 액세스할 수 없습니다. AppWindow가 ApplicationView와 다른 모니터에 있는 경우 올바른 표시 정보를 쿼리할 수 없습니다.
- AppWindow에 대해 UserInteractionMode를 설정할 수 없습니다.
- 인쇄 대화 상자(2D 및 3D)는 올바른 창에 부모가 되지 않습니다.
- AppWindow는 에지 제스처가 호출되는 시기를 감지할 수 없습니다.
- AppWindow는 ActivationViewSwitcher를 통해 활성화 요청을 충족하는 데 사용할 수 없습니다.
속성
Content |
창에 현재 연결된 앱 콘텐츠를 가져옵니다. |
DispatcherQueue |
앱 창에 대한 디스패처 큐를 가져옵니다. |
Frame |
앱 창의 프레임을 가져옵니다. |
IsVisible |
디스플레이에서 창을 볼 수 있는지 여부를 나타내는 값을 가져옵니다. |
PersistedStateId |
상태를 추적하고 저장하기 위해 이 창을 식별하는 문자열을 가져오거나 설정합니다. |
Presenter |
앱 창의 발표자를 가져옵니다. |
Title |
앱 창의 표시된 제목을 가져오거나 설정합니다. |
TitleBar |
앱 창의 제목 표시줄을 가져옵니다. |
UIContext |
앱 창의 UI 컨텍스트를 가져옵니다. |
WindowingEnvironment |
앱 창의 창 환경을 가져옵니다. |
메서드
ClearAllPersistedState() |
지정된 애플리케이션에 대한 모든 창 PersistedStateId에 대해 시스템이 저장한 속성을 지웁니다. |
ClearPersistedState(String) |
지정된 애플리케이션에 대해 지정된 ID를 사용하여 창에 대해 시스템이 저장한 속성을 지웁니다. |
CloseAsync() |
앱 창을 닫습니다. |
GetDisplayRegions() |
앱 창에 사용할 수 있는 표시 영역의 컬렉션을 반환합니다. |
GetPlacement() |
앱 창의 표시 영역, 오프셋 및 크기를 설명하는 배치 개체를 반환합니다. |
RequestMoveAdjacentToCurrentView() |
현재 보기 옆에 창을 배치하도록 요청합니다. |
RequestMoveAdjacentToWindow(AppWindow) |
지정된 앵커 창 옆에 창을 배치하도록 요청합니다. |
RequestMoveRelativeToCurrentViewContent(Point) |
현재 뷰를 기준으로 지정된 오프셋에 창을 배치하도록 요청합니다. |
RequestMoveRelativeToDisplayRegion(DisplayRegion, Point) |
지정된 오프셋의 지정된 표시 영역에 창을 배치하도록 요청합니다. |
RequestMoveRelativeToWindowContent(AppWindow, Point) |
앵커 창을 기준으로 지정된 오프셋에 창을 배치하도록 요청합니다. |
RequestMoveToDisplayRegion(DisplayRegion) |
지정된 표시 영역에 창을 배치하도록 요청합니다. |
RequestSize(Size) |
창을 지정된 크기로 설정하도록 요청합니다. |
TryCreateAsync() |
AppWindow의 새 instance 비동기적으로 만들려고 시도합니다. |
TryShowAsync() |
현재 앱 창을 비동기적으로 표시하려고 시도합니다. |
이벤트
Changed |
앱 창의 속성이 변경되면 발생합니다. |
Closed |
앱 창이 닫혔을 때 발생합니다. |
CloseRequested |
창이 닫히기 시작한 후 닫히기 전과 Closed 이벤트가 발생하기 전에 발생합니다. |