AppWindow 类

定义

表示应用内容的系统托管容器。

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
继承
Object Platform::Object IInspectable AppWindow
属性

Windows 要求

设备系列
Windows 10, version 1903 (在 10.0.18362.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v8.0 中引入)

注解

注意

AppWindow 目前以预览版提供。 这意味着,可将使用 AppWindow 的应用提交到 Store,但某些平台和框架组件已知不能与 AppWindow 配合工作(请参阅限制)。

当 AppWindow 具有多个窗口时,可以使用 AppWindow 来表示Windows 运行时应用的显示部分。 它在概念上类似于 ApplicationView,但行为和生存期不同。

ApplicationView 不同,每个 AppWindow 都没有相应的 CoreWindow。 它们都共享相同的 UI 处理线程 (包括创建它们的事件调度程序) 。

若要获取此类型的对象,请调用 AppWindow.TryCreateAsync

若要将内容连接到 AppWindow,请调用 ElementCompositionPreview.SetAppWindowContent

只能将 XAML 内容连接到 AppWindow,不支持本机 DirectX 或全息内容。

若要指定应用窗口的首选最小大小,请使用 WindowManagementPreview.SetPreferredMinSize 方法。

提示

有关演示 AppWindow 的详细信息和代码,请参阅 显示应用的多个视图 和使用 AppWindow 显示多个视图

可在 GitHub 上的“示例/AppWindow”下的 Windows 通用示例存储库中找到演示如何使用 AppWindow API 的示例

限制

AppWindow 当前预览版的限制包括 (这是一个非详尽列表) :

  • 任何使用 GetForCurrentView 模式的 API 都不适用于 AppWindow,因为 CurrentView 指的是 ApplicationView,后者是 AppWindow 的单独实体。
  • MediaElement 或 MediaPlayerElement 中不提供全屏媒体播放。
  • MessageDialog 不会模式化到正确的窗口,建议改用 ContentDialog
  • WebView 不完全受支持。 可以使用生产内 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 的新实例。

TryShowAsync()

尝试异步显示当前应用窗口。

事件

Changed

当应用窗口的属性发生更改时发生。

Closed

在关闭应用窗口时发生。

CloseRequested

在窗口开始关闭之后、关闭之前以及关闭事件之前发生。

适用于