我正在使用 Bot Framework,我想使用方法 PromptDialog.Choice 显示附加图像的选项列表,以便利用 ResumeAfterChoose> 控制我的业务逻辑的方法。然而,我只看到了EchoBot Sample中写的附件对话框。它只会创建消息列表,在客户选择其中一个列表后,这使我难以处理我的业务逻辑。请告诉我实现该方法的方法。谢谢
最佳答案
开箱即用,你不能这样做。不过,有几种方法可以实现这一目标。
首先,您是说使用附件对您不起作用,因为您将无法处理您的业务逻辑。这部分是正确的;但不是因为你提到的原因。
您可以列出 HeroCards
的列表使用按钮并使用附件的轮播布局(请参阅 RichCards 和 CarouselCards 示例)。然后,您可以执行 context.Wait
到不同的方法(类似于 ResumeAfterChoose
中的 PromptDialog
方法)并处理那里的逻辑。该方法将获取单击的按钮的值,然后您可以执行您的业务逻辑。现在...需要注意的是,如果用户编写任何与选项不相符的内容,您仍然会使用此方法。
你猜怎么着?我刚才描述的与PromptDialog.Choice
极其相似。在幕后做的...唯一的区别是它添加了一个重试逻辑来处理我提到的警告,并且使用的布局是一个列表布局,因为它只渲染一个 HeroCard
有多个按钮(选项)
在这种情况下我会采取的方式是尝试组合一个自定义 PromptStyler ,覆盖 Apply<T>
方法并添加您的逻辑,以基于 PromptStyle 以您想要的方式呈现 Choice 选项。使用过。
默认情况下 PromptDialog.Choice使用 PromptStyle.Auto,在游戏结束时(在 PromptStyler 中)converts the options into a HeroCard with multiple buttons 。您可以轻松更改该逻辑以创建多张卡片,并为其使用图像。
关于c# - 带图像的 Bot 框架提示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42848591/