AppWindow 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示应用内容的系统托管容器。
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
- 继承
- 属性
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 |
在窗口开始关闭之后、关闭之前以及关闭事件之前发生。 |