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 IInspectable AppWindow
属性

Windows 要求

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

注解

备注

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

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

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

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

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

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

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

提示

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

演示如何使用 AppWindow API 的示例可以在 GitHub 上的 Windows 通用示例存储库( 示例/AppWindow)中找到。

限制

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

  • 使用 GetForCurrentView 模式的任何 API 都不适用于 AppWindow,因为 CurrentView 引用了 ApplicationView,这是与 AppWindow 不同的实体。
  • 媒体播放在 MediaElement 或 MediaPlayerElement 中不可用。
  • MessageDialog 不会对正确的窗口进行模式处理,建议改为使用 ContentDialog
  • WebView 不受完全支持。 可以使用 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 的新实例。

TryShowAsync()

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

事件

Changed

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

Closed

当应用窗口关闭时发生。

CloseRequested

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

适用于