在XAML自定义控件中使用字典建议实现支持自动对等的文本模式
我正在尝试修改(尤其是在XAML自定义控件中使用字典建议实现支持自动对等的文本模式,xaml,c++-cx,microsoft-ui-automation,Xaml,C++ Cx,Microsoft Ui Automation,我正在尝试修改(尤其是TouchedTextBlock控件)以进行文本编辑UserControl。不幸的是,样本远远不够。它唯一允许的是,当用户点击控件时,软件键盘会显示出来:键盘不提供用户类型的字典建议。此外,它没有说明控件应该如何接收和处理编辑命令;例如,如果用户选择键盘建议的单词,我的控件如何获取该单词并将其添加到文本中?我添加了调试代码来跟踪方法调用,但似乎并没有调用和实现。因此,我的问题是: 1) 什么时候调用上述接口中的方法?有人能解释UI自动化机制的工作流程/交互吗 我被很多关于M
TouchedTextBlock
控件)以进行文本编辑UserControl
。不幸的是,样本远远不够。它唯一允许的是,当用户点击控件时,软件键盘会显示出来:键盘不提供用户类型的字典建议。此外,它没有说明控件应该如何接收和处理编辑命令;例如,如果用户选择键盘建议的单词,我的控件如何获取该单词并将其添加到文本中?我添加了调试代码来跟踪方法调用,但似乎并没有调用和实现。因此,我的问题是:
1) 什么时候调用上述接口中的方法?有人能解释UI自动化机制的工作流程/交互吗
我被很多关于MSDN的文章弄糊涂了。我的粗略理解是,键盘就像UI自动化框架中的“客户端”(在与应用程序分离的过程中执行),而AutomationPeer
就像“服务器”。不知何故,在本例中,键盘客户端根本不与myAutomationPeer
交互;它只通过提供关键事件与整个应用程序进行交互,而它应该专门与定制的AutomationPeer
进行交互。我希望有以下工作流程:
- 用户点击控件
- 控件通过调用
focus
- 获得关注后,框架调用
来创建我的OnCreateAutomationPeer
AutomationPeer
- 框架确定模式和控件类型,如果检测到
模式且文本不是只读的,则显示软件键盘文本
- 示例中实际发生的情况:键盘似乎为整个应用程序提供了原始按键事件。
我所期望的:键盘(远程)调用“我的
”方法,让用户在我的控件中插入字符和单词(以及退格、回车等)自动对等
TextBox
或RichEditBox
:如果它们适合我的需要,我会使用它们