如何在 Microsoft bot 框架中设置 "suggested actions" 的样式?

How to style "suggested actions" in Microsoft bot framework?

我正在使用 bot framework v4 SDK 进行网络聊天。我对选择提示使用了建议的操作。默认情况下,建议的操作是水平对齐的。有没有办法让它垂直?

我已经尝试了选择提示的样式选项作为英雄卡片和 list.B ut 在这两种情况下,选择将保留在聊天中 window 并且不会消失。所以我唯一的选择是使用建议的操作。我找不到使建议的操作垂直显示的方法。

 PromptOptions choicePromptOptions = new PromptOptions
        {
            Choices = choices,
            Prompt = MessageFactory.Text("Please choose :"),
            RetryPrompt = null,
            Style = ListStyle.SuggestedAction
         };

除了建议的操作之外,还有其他方法可以使选择消失吗?

遗憾的是,建议的操作无法做到这一点。根据设计,建议的操作旨在消耗尽可能少的房地产,因为它们是临时存在的。因此,横向显示。

如果您想要水平显示,那么我建议您使用 hero card。但是,它将保留为网络聊天记录的一部分,并且不会在选择或其他 activity 发生后消失。

这是从参考文档中借用的示例代码:

private static async Task DisplayOptionsAsync(ITurnContext turnContext, CancellationToken cancellationToken)
{
    var card = new HeroCard
    {
        Text = "You can upload an image or select one of the following choices",
        Buttons = new List<CardAction>
        {
            new CardAction(ActionTypes.ImBack, title: "1. Green", value: "1"),
            new CardAction(ActionTypes.ImBack, title: "2. Blue", value: "2"),
            new CardAction(ActionTypes.ImBack, title: "3. Red", value: "3"),
        },
    };

    var reply = MessageFactory.Attachment(card.ToAttachment());
    await turnContext.SendActivityAsync(reply, cancellationToken);
}

在最新版本的 bot 框架中只需应用以下设置

suggestedActionLayout: 'carousel', // either 'carousel' or 'stacked'

有关详细信息,请参阅 https://github.com/Microsoft/BotFramework-WebChat/blob/master/packages/component/src/Styles/defaultStyleOptions.js