Bot框架提示对话框与图像

时间:2017-03-17 03:16:11

标签: c# botframework

我正在使用Bot Framework,我想显示使用 PromptDialog.Choice 方法附加图像的选项列表,以便利用 ResumeAfterChoose < / strong>控制我的业务逻辑的方法。但是,我只看到了用EchoBot Sample编写的附件对话框,它只创建了一些消息列表,这些消息使我在客户选择其中一个列表后很难处理我的业务逻辑。请告诉我实现它的方法。感谢

1 个答案:

答案 0 :(得分:4)

开箱即用,你无法做到这一点。但是有几种方法可以实现这一点。

首先,您说使用附件不会为您工作,因为您无法处理业务逻辑。这是部分正确的;但不是因为你提到的原因。

您可以将HeroCards列表与按钮放在一起,并使用附件的轮播布局(请参阅RichCardsCarouselCards示例)。然后,您只需执行context.Wait到不同的方法(类似于ResumeAfterChoose中的PromptDialog方法)并处理其中的逻辑。该方法将获得单击按钮的值,然后您可以执行业务逻辑。现在......需要注意的是,如果用户写入任何与选项不对齐的内容,您仍然可以使用此方法。

猜猜是什么?我刚刚描述的内容与幕后的PromptDialog.Choice非常相似...唯一的区别是它添加了一个Retry逻辑来处理我提到的警告,并且使用的布局是一个列表,因为它只是使用多个按钮(选项)呈现单个HeroCard

我在这种情况下的方法是尝试将自定义PromptStyler组合在一起,覆盖Apply<T>方法并添加逻辑以基于所需的方式呈现Choice选项PromptStyle已使用。

默认情况下,PromptDialog.Choice使用PromptStyle.Auto,即游戏结束时(在PromptStyler中)converts the options into a HeroCard with multiple buttons。您可以轻松地更改该逻辑以创建多张卡片,并为其使用图像。