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 线程。 请参阅示例中的创建新窗口

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

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

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

构造函数

Window()

初始化 Window 类的新实例。

属性

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)

当 为 trueExtendsContentIntoTitleBar,在 XAML 元素上启用标题栏行为。

事件

Activated

成功激活窗口后发生。

Closed

在窗口关闭时发生。

SizeChanged

在应用窗口首次呈现或更改其呈现大小时发生。

VisibilityChanged

Visible 属性的值更改时发生。

适用于

另请参阅