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() |
检索生成此密钥事件的输入设备的唯一 ID。
|
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 |
当窗口可见性发生更改时触发。 |