我目前已将 Cortana 实施到我的 Silverlight 应用程序中。语音命令存储在 CortanaCommands.xml 中,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.1">
<CommandSet xml:lang="en-US">
<CommandPrefix>Dr. Bailey</CommandPrefix>
<Example> Open app to take dictation </Example>
<Command Name="Text">
<Example> Is it going to rain? </Example>
<ListenFor> [create] {dictation} </ListenFor>
<Feedback> "" </Feedback>
<Navigate Target="/Views/CortanaText.xaml" />
</Command>
<PhraseTopic Label="dictation" Scenario="Dictation">
<Subject> Cal 123 </Subject>
</PhraseTopic>
</CommandSet>
</VoiceCommands>"
在此示例中,如果用户部署 Cortana 并说“Bailey 博士,会下雨吗?”,然后应用导航到 CortanaText.xaml。这是硬编码到 XML 中的,我希望用户能够自定义他们的命令前缀和命令。
通过使用 2 个文本框,我在 C# 中编写了一个包含整个 XML 的字符串,但插入了包含新命令前缀和命令的文本框中的选项。此字符串称为 cortanaXMLstring。用新字符串覆盖 CortanaCommands.xml 中现有代码的最佳方法是什么?我认为这比修改现有 XML 的 2 个不同区域更容易。我还认为可以删除 CortanaCommands.xml(使用 c# 代码),然后通过简单地插入字符串重新创建 XML,因为字符串包含 XML 所需的所有文本?或者,关于如何修改 XML 中的这两个字段,还有其他建议吗?它是命令前缀和命令示例。感谢您提供的任何帮助!