【WPF 体系结构】输入系统 Input
Input (输入系统)的体系结构
输入(Input)
Windows Presentation Foundation (WPF)包括对几种输入类型的支持。这种输入包括文本、触笔输入、鼠标、聚焦、触摸、拖放和数字墨水以上都是设备输入、命令(偏向语义)
主要的输入API暴露在基元素类上:UIElement、ContentElement、FrameworkElement和FrameworkContentElement。有关基本元素的更多信息,请参见基本元素概述。这些类提供了与按键、鼠标按钮、鼠标滚轮、鼠标移动、焦点管理和鼠标捕获等相关的输入事件的功能。通过将输入API放置在基本元素上,而不是将所有输入事件视为服务,输入体系结构允许由UI中的特定对象提供输入事件来源,并支持事件路由方案,使多个元素有机会处理一个输入事件。许多输入事件都有一对与之关联的事件。例如,key down事件与KeyDown和PreviewKeyDown事件相关联。这些事件的不同之处在于如何将它们路由到目标元素。预览事件沿着元素树从根元素向下延伸到目标元素。冒泡事件从目标元素冒泡到根元素。WPF中的事件路由将在后面的概述和路由事件概述中详细讨论。
备注:什么是数码墨水(Digital Ink)? 数字墨水是一种技术,它允许手写和电子笔以电子方式添加到文档中,并显示在计算机显示器上,保存格式是ink
输入 API
主要输入 API 公开存在于以下基元素类上:UIElement、ContentElement、FrameworkElement 和 FrameworkContentElement。 有关基元素的详细信息,请参阅基元素概述。 这些类提供有关输入事件(例如按键、鼠标按钮、鼠标滚轮、鼠标移动、焦点管理和鼠标捕获等)的功能。 通过将输入 API 放置在基元素上,而不是将所有输入事件视作一项服务,该输入体系结构使输入事件可以由 UI 中的特定对象指明其出处,并支持事件路由方案,从而使得多个元素有机会处理输入事件。 许多输入事件都具有与之相关联的一对事件。 例如,键盘按下事件与 KeyDown 和 PreviewKeyDown 事件相关联。 这些事件的区别在于它们如何路由至目标元素。 预览事件将元素树从根元素到目标元素向下进行隧道操作。 冒泡事件从目标元素到根元素向上进行冒泡操作。 WPF 中的事件路由在本概述的后面和路由事件概述中有更详细的讨论。