语言

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 方法替代。 此代码演示 On 上的 Activate 方法 Window的典型用法。

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

private Window m_window;

创建新窗口

在应用中,可以显式创建每个窗口。 创建多个窗口需要 1.0.1 更新才能Windows 应用 SDK,并且仅限于单个线程。

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();
  }
}

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

注解

有关详细信息和示例,请参阅 WinUI 和 Windows 应用 SDK的窗口概述

通常, Window 用于将 UIElement 设置为表示应用 UI 的内容 。 这通常作为应用激活的一部分完成(例如 OnLaunched 重写),并允许你在窗口的整个生存期内更改窗口内容。

确保对初始激活时使用的任何Window内容调用 Activate。 如果使用Microsoft Visual Studio中的默认应用模板,则 Window.Activate 包含在App.xaml代码隐藏文件中。

可以在应用中为每个线程创建多个 Window 线程。 请参阅 显示应用的多个窗口

Window 实现 IWindowNative 以通过窗口的 HWND(WindowHandle)启用互操作。

构造函数

名称 说明
Window()

初始化 Window 类的新实例。

属性

名称 说明
AppWindow

获取与此 XAML Window关联的值AppWindow

Bounds

获取一个 Rect 值,该值包含应用程序窗口的高度和宽度(以有效(视图)像素为单位。

Compositor

获取此窗口的 Compositor

Content

获取或设置应用程序窗口的可视根。

CoreWindow

[已弃用]始终返回 null

Current

始终返回 null

Dispatcher

[已弃用]始终返回 null

DispatcherQueue

DispatcherQueue获取窗口的对象。

ExtendsContentIntoTitleBar

获取或设置一个值,该值指定是否应隐藏窗口的默认标题栏,以便为应用内容创建空间。

Height

表示当前 应用程序的窗口。

MaxHeight

表示当前 应用程序的窗口。

MaxWidth

表示当前 应用程序的窗口。

MinHeight

表示当前 应用程序的窗口。

MinWidth

表示当前 应用程序的窗口。

SystemBackdrop

获取或设置要应用于此 Window的系统背景。 背景呈现在 Window 内容后面。

Title

获取或设置用于窗口标题的字符串。

Visible

获取一个值,该值报告窗口是否可见。

Width

表示当前 应用程序的窗口。

方法

名称 说明
Activate()

尝试通过将应用程序窗口引入前台并设置输入焦点来激活应用程序窗口。

Close()

关闭应用程序窗口(销毁)。

SetTitleBar(UIElement)

在 XAML 元素上启用标题栏行为(如果为 ExtendsContentIntoTitleBartrue)。

活动

名称 说明
Activated

成功激活或停用窗口时发生。

Closed

窗口关闭时发生。

SizeChanged

当窗口的呈现大小发生更改时发生。

VisibilityChanged

Visible 属性的值发生更改时发生。

适用于

另请参阅