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 的應用程式提交至 Microsoft 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 通用範例存放庫的 Samples/AppWindow下找到。

限制

AppWindow 目前預覽版本中的限制包括 (這是非詳盡的清單) :

  • 任何使用 GetForCurrentView 模式的 API 都不適用於 AppWindow,因為 CurrentView 指的是與 AppWindow 不同的實體 ApplicationView。
  • MediaElement 或 MediaPlayerElement 中無法使用全螢幕媒體播放。
  • MessageDialog 不會強制回應正確的視窗,建議改為使用 ContentDialog
  • WebView 完全不受支援。 您可以使用程式內 WebView,但靜態 HTML 內容以外的任何專案都可能無法正常運作。
  • 如果您在 XAML 中設定 Window.Current.Content 屬性,它會終結 AppWindow 中的所有 XAML 內容。 如果您使用 AppWindow,請避免在暫停應用程式時使用此模式來重設內容。
  • Smooth Window Resize 不適用於 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)

清除系統針對具有指定應用程式之指定識別碼的視窗所儲存的任何屬性。

CloseAsync()

關閉應用程式視窗。

GetDisplayRegions()

傳回應用程式視窗可用的顯示區域集合。

GetPlacement()

會傳回位置物件,描述應用程式視窗的顯示區域、位移和大小。

RequestMoveAdjacentToCurrentView()

要求將視窗放在目前檢視旁。

RequestMoveAdjacentToWindow(AppWindow)

提出要求,以將視窗放在指定的錨點視窗旁邊。

RequestMoveRelativeToCurrentViewContent(Point)

要求將視窗置於相對於目前檢視的指定位移位置。

RequestMoveRelativeToDisplayRegion(DisplayRegion, Point)

要求將視窗放在指定顯示區域中的指定位移。

RequestMoveRelativeToWindowContent(AppWindow, Point)

要求將視窗置於相對於錨點視窗的指定位移。

RequestMoveToDisplayRegion(DisplayRegion)

要求將視窗放置在指定的顯示區域中。

RequestSize(Size)

提出將視窗設定為指定大小的要求。

TryCreateAsync()

嘗試以非同步方式建立 AppWindow 的新實例。

TryShowAsync()

嘗試以非同步方式顯示目前的應用程式視窗。

事件

Changed

發生于應用程式視窗的屬性已變更時。

Closed

發生于應用程式視窗已關閉時。

CloseRequested

會在視窗開始關閉之後發生,但在關閉之前發生 Closed 事件之前發生。

適用於