在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
就像“服务器”。不知何故,在本例中,键盘客户端根本不与my
AutomationPeer
交互;它只通过提供关键事件与整个应用程序进行交互,而它应该专门与定制的
AutomationPeer
进行交互。我希望有以下工作流程:

  • 用户点击控件
  • 控件通过调用
    focus
  • 获得关注后,框架调用
    OnCreateAutomationPeer
    来创建我的
    AutomationPeer
  • 框架确定模式和控件类型,如果检测到
    文本
    模式且文本不是只读的,则显示软件键盘
  • 示例中实际发生的情况:键盘似乎为整个应用程序提供了原始按键事件。 我所期望的:键盘(远程)调用“我的
    自动对等
    ”方法,让用户在我的控件中插入字符和单词(以及退格、回车等)
2) 是否有示例说明如何提供建议

请不要建议我使用内置控件,如
TextBox
RichEditBox
:如果它们适合我的需要,我会使用它们