带有图像的 Bot Framework 提示对话框

Bot Framework Prompt Dialog with Image

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

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

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

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

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

在这种情况下,我会采用的方法是尝试将使用过的自定义 PromptStyler, override the Apply<T> method and add your logic to render the Choice options in the way you want based on the PromptStyle 组合在一起。

默认为PromptDialog.Choice uses PromptStyle.Auto, that at the end of the game (in the PromptStyler) converts the options into a HeroCard with multiple buttons。您可以轻松更改该逻辑以创建多张卡片并为其使用图像。