CoreWindow 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示具有輸入事件和基本使用者介面行為的 UWP 應用程式。
public ref class CoreWindow sealed : ICoreWindow
public ref class CoreWindow sealed : ICorePointerRedirector, ICoreWindow
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
class CoreWindow final : ICoreWindow
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
class CoreWindow final : ICorePointerRedirector, ICoreWindow
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
public sealed class CoreWindow : ICoreWindow
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Standard)]
public sealed class CoreWindow : ICorePointerRedirector, ICoreWindow
Public NotInheritable Class CoreWindow
Implements ICoreWindow
Public NotInheritable Class CoreWindow
Implements ICorePointerRedirector, ICoreWindow
- 繼承
- 屬性
- 實作
Windows 需求
| 裝置系列 |
Windows 10 (已於 10.0.10240.0 引進)
|
| API contract |
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)
|
備註
呼叫CoreApplication.CreateNewView,然後檢查傳回CoreApplicationView實例上的CoreWindow屬性,即可取得這個類別的新實例。 或者,您可以從 CoreApplication.Views 屬性,或是呼叫 CoreWindow.GetForCurrentThread,取得執行中應用程式的現有 CoreWindow 實例,如下列範例所示。
// App.cpp
...
// An implementation of IFrameworkView::Run.
void Run()
{
CoreWindow window{ CoreWindow::GetForCurrentThread() };
window.Activate();
CoreDispatcher dispatcher{ window.Dispatcher() };
dispatcher.ProcessEvents(CoreProcessEventsOption::ProcessUntilQuit);
}
// The CoreApplication::Run call indirectly calls the App::Run function above.
int __stdcall wWinMain(HINSTANCE, HINSTANCE, PWSTR, int)
{
CoreApplication::Run(App());
}
void MyCoreWindowEvents::Run() // this is an implementation of IFrameworkView::Run() used to show context
{
CoreWindow::GetForCurrentThread()->Activate();
/...
CoreWindow::GetForCurrentThread()->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessUntilQuit);
}
注意
這個類別不是敏捷的,這表示您必須考慮其執行緒模型和封送處理行為。 如需詳細資訊,請參閱 執行緒和封送處理 (C++/CX) 。
版本歷程記錄
| Windows 版本 | SDK 版本 | 新增值 |
|---|---|---|
| 1511 | 10586 | PointerRoutedAway |
| 1511 | 10586 | PointerRoutedReleased |
| 1511 | 10586 | PointerRoutedTo |
| 1607 | 14393 | ClosestInteractiveBoundsRequested |
| 1607 | 14393 | GetCurrentKeyEventDeviceId |
| 1703 | 15063 | ResizeCompleted |
| 1703 | 15063 | ResizeStarted |
| 1709 | 16299 | ActivationMode |
| 1709 | 16299 | DispatcherQueue |
| 1903 | 18362 | UIContext |
屬性
| ActivationMode |
取得值,這個值表示視窗的啟用狀態。 |
| AutomationHostProvider |
取得指派給這個視窗的自動化提供者。 |
| Bounds |
取得 Rect 值,其中包含視窗工作區的原點、高度和寬度,以裝置無關的圖元 (DIP) 。 |
| CustomProperties |
取得視窗的自訂屬性集。 |
| Dispatcher |
取得視窗的事件發送器。 |
| DispatcherQueue |
取得視窗的 DispatcherQueue 。 |
| FlowDirection |
取得或設定視窗讀取順序對齊的水準原點。 如果使用者介面所指定的語言靠右對齊 (,例如阿拉伯文或希伯來文) ,則視窗的閱讀版面配置水準原點位於右邊緣。 |
| IsInputEnabled |
取得或設定值,這個值表示是否為應用程式啟用輸入。 |
| PointerCursor |
取得或設定應用程式所使用的指標資料指標。 |
| PointerPosition |
取得指標的用戶端座標。 |
| UIContext |
取得核心視窗的內容識別碼。 |
| Visible |
取得值,這個值表示視窗是否可見。 |
方法
| Activate() |
啟用視窗。 呼叫這個方法可呈現螢幕上的視窗。 |
| Close() |
關閉次要視窗並結束訊息迴圈。 |
| GetAsyncKeyState(VirtualKey) |
以非同步方式擷取虛擬金鑰的狀態。 |
| GetCurrentKeyEventDeviceId() |
擷取產生此金鑰事件之輸入裝置的唯一識別碼。
|
| GetForCurrentThread() |
取得目前使用中線程的 CoreWindow 實例。 |
| GetKeyState(VirtualKey) |
擷取虛擬金鑰的狀態。 |
| ReleasePointerCapture() |
如果先前透過 SetPointerCapture相關聯,則會將指標輸入與應用程式解除關聯,並還原一般指標輸入處理。 |
| SetPointerCapture() |
將指標輸入與應用程式產生關聯。 擷取指標之後,與該指標相關聯的所有後續事件都會由應用程式引發。 |
事件
| Activated |
當視窗完成啟用或停用時,就會引發 。 |
| AutomationProviderRequested |
在產生自動化處理常式的要求時引發。 |
| CharacterReceived |
當輸入佇列收到新字元時,就會引發 。 |
| Closed |
當視窗關閉 (或應用程式完全終止) 時發生。 |
| ClosestInteractiveBoundsRequested |
注意 不適用於一般用途。 當架構輸入管理員要求特定周框內互動式元素的周框,且最接近特定指標時發生。 |
| InputEnabled |
發生于為應用程式啟用或停用輸入時。 |
| KeyDown |
按下非系統按鍵時所引發的事件。 此事件的委派類型為TypedEventHandler < TSender,TResult >,其中TSender的類型為CoreWindow,而 TResult的類型為KeyEventArgs。 |
| KeyUp |
按下後放開非系統按鍵時所引發的事件。 此事件的委派類型為TypedEventHandler < TSender,TResult >,其中TSender的類型為CoreWindow,而 TResult的類型為KeyEventArgs。 |
| PointerCaptureLost |
當指標移至另一個應用程式時發生。 此事件會在 PointerExited 之後引發,而且是應用程式針對此指標接收的最終事件。 |
| PointerEntered |
當指標移至應用程式的周框方塊時發生。 |
| PointerExited |
發生于指標在應用程式周框方塊外移動時。 |
| PointerMoved |
發生于指標在應用程式的周框方塊內移動時。 |
| PointerPressed |
發生于按一下滑鼠按鍵,或在應用程式周框內的手指或手寫筆觸碰數位板表面時。 當偵測到單一連絡人,並在該連絡人和相同會話中的所有後續連絡人都不再偵測到時,就會開始互動會話。 針對在互動會話中偵測到的第一個連絡人,會引發此事件。 所有其他並行連絡人指標的詳細資料都會透過PointerPointProperties物件公開, (透過從PointerPoint物件取得Properties屬性) 取得。 |
| PointerReleased |
發生于按下的滑鼠按鍵放開時,如果指標) 擷取指標,就會從數位板介面中,從數位板 (表面增益觸控或手寫筆接觸。 |
| PointerRoutedAway |
當指標重新導向至另一個輸入物件時,會在接收指標的輸入物件上發生, (可能在不同的進程中) 。 |
| PointerRoutedReleased |
發生在與輸入物件相關聯但目前未接收輸入的所有輸入物件上,該指標會在輸入物件上引發 CoreIndependentInputSource.PointerReleased 事件。 |
| PointerRoutedTo |
發生于先前擷取的指標輸入傳遞至另一個物件時,轉換至傳遞至這個物件。 |
| PointerWheelChanged |
旋轉滑鼠滾輪時所引發的事件。 此事件的委派類型為TypedEventHandler < TSender,TResult >,其中TSender的類型為CoreWindow,而 TResult的類型為PointerEventArgs。 |
| ResizeCompleted |
發生于使用者完成調整視窗大小時。 |
| ResizeStarted |
發生于使用者開始調整視窗大小時。 |
| SizeChanged |
發生于視窗大小變更時。 |
| TouchHitTesting |
發生于觸控接觸區域與已登錄觸控點擊測試之視窗的周框 (或多邊形交集) 時。 |
| VisibilityChanged |
當視窗可見度變更時,就會引發 。 |