다음을 통해 공유


Window 클래스

정의

현재 애플리케이션의 창을 나타냅니다.

/// [Microsoft.UI.Xaml.Markup.ContentProperty(Name="Content")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Window
[Microsoft.UI.Xaml.Markup.ContentProperty(Name="Content")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Window
Public Class Window
상속
Object IInspectable Window
특성

예제

OnLaunched

다음 코드 예제에서는 Microsoft Visual Studio의 데스크톱 템플릿에서 WinUI에 대해 생성된 OnLaunched 메서드 재정의를 보여줍니다. 이 코드는 에서 WindowActivate 메서드를 일반적으로 사용하는 방법을 보여 줍니다.

protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
    m_window = new MainWindow();
    m_window.Activate();
}

private Window m_window;

새 창 만들기

앱에서 각 창을 명시적으로 만들 수 있습니다. 두 개 이상의 창을 만들려면 WindowsAppSDK에 대한 1.0.1 업데이트가 필요하며 단일 스레드로 제한됩니다.

var window = new Window();
window.Content = new TextBlock() { Text = "Hello" };
window.Activate();

태그에서 새 창을 정의할 수도 있습니다.

<Window 
    x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <TextBlock>Hello</TextBlock>
</Window>

해당 코드 숨김을 사용하여 다음을 수행합니다.

public partial class MainWindow : Window
{
  public MainWindow()
  {
    InitializeComponent();
  }
}

...
var window = new MainWindow();
window.Activate();

설명

앱에서 스레드당 둘 Window 이상을 만들 수 있습니다. 예제에서 새 창 만들기를 참조하세요.

WindowIWindowNative 을 구현하여 Window의 HWND(WindowHandle)를 통해 interop을 사용하도록 설정합니다.

일반적으로 는 Window 앱 UI를 나타내는 콘텐츠UIElement를 설정하는 데 사용됩니다. 이는 일반적으로 앱 활성화(예: OnLaunched 재정의)의 일부로 수행되며 창의 수명 동안 창 콘텐츠를 변경할 수 있습니다.

초기 활성화에 사용된 모든 Window 항목에서 활성화를 호출해야 합니다. Microsoft Visual Studio의 기본 앱 템플릿을 사용하는 경우 Window.Activate 는 App.xaml 코드 숨김 파일에 포함됩니다.

생성자

Window()

Window 클래스의 새 instance 초기화합니다.

속성

AppWindow

AppWindow 이 XAML Window에 연결된 를 가져옵니다.

Bounds

유효(보기) 픽셀 단위로 애플리케이션 창의 높이와 너비를 포함하는 Rect 값을 가져옵니다.

Compositor

이 창의 Compositor 를 가져옵니다.

Content

애플리케이션 창의 시각적 루트를 가져오거나 설정합니다.

CoreWindow

데스크톱 앱은 항상 이 속성에 대해 를 반환 null 합니다.

Current

데스크톱 앱은 항상 이 속성에 대해 를 반환 null 합니다.

Dispatcher

항상 Windows 앱 SDK 앱에서 를 반환 null 합니다.

참고

Window.Dispatcher 는 이후 릴리스에서 변경되거나 사용할 수 없을 수 있습니다. 대신 Window.DispatcherQueue 를 사용합니다.

DispatcherQueue

창의 DispatcherQueue 개체를 가져옵니다.

ExtendsContentIntoTitleBar

앱 콘텐츠의 공간을 만들기 위해 창의 기본 제목 표시줄을 숨길지 여부를 지정하는 값을 가져오거나 설정합니다.

SystemBackdrop

Window에 적용할 시스템 배경을 가져오거나 설정합니다. 배경은 콘텐츠 뒤에 Window 렌더링됩니다.

Title

창 제목에 사용되는 문자열을 가져오거나 설정합니다.

Visible

창이 표시되는지 여부를 보고하는 값을 가져옵니다.

메서드

Activate()

애플리케이션 창을 포그라운드로 가져오고 입력 포커스를 설정하여 애플리케이션 창을 활성화하려고 시도합니다.

Close()

애플리케이션 창을 닫습니다.

SetTitleBar(UIElement)

가 인 경우 XAML 요소에서 제목 표시줄 동작을 ExtendsContentIntoTitleBartrue사용하도록 설정합니다.

이벤트

Activated

창이 성공적으로 활성화되었을 때 발생합니다.

Closed

창이 닫혔을 때 발생합니다.

SizeChanged

앱 창이 처음 렌더링되었거나 렌더링 크기를 변경한 경우에 발생합니다.

VisibilityChanged

Visible 속성의 값이 변경되면 발생합니다.

적용 대상

추가 정보