Bot框架提示对话框与图像

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

开箱即用,你不能这样做。 但是有几种方法可以实现这一目标。

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

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

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

在这种情况下,我将尝试将自定义PromptStyler放在一起,重写Apply方法并添加逻辑,以根据所使用的PromptStyle以您希望的方式呈现Choice选项。

默认情况下, PromptDialog.Choice使用PromptStyle.Auto ,在游戏结束时(在PromptStyler中 ) 将选项转换为带有多个按钮的HeroCard 。 您可以轻松地更改该逻辑以创建多张卡片,并为其使用图像。