CoreWindow 类

定义

表示具有输入事件和基本用户界面行为的 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
继承
Object Platform::Object IInspectable CoreWindow
属性
实现

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。

并非所有输入设备都支持 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

当窗口可见性发生更改时触发。

适用于

另请参阅