2017-03-06 13 views
0

我想知道是否有可能与旋转木马而不是按钮的PromptDialog。我可以使用传送带而不是Bot框架中的按钮来提示用户吗?

例如,如果我想提示与选择的用户,我可以做这样的事情:

public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> result) 
{ 
    IEnumerable<string> options = new List<string> 
    { 
     "First Option", 
     "Second Option", 
     "Third Option", 
     "Fourth Option" 
    }; 

    PromptDialog.Choice(context, AfterPromptDialogChoice, options, "Choose an option"); 
} 

private async Task AfterPromptDialogChoice(IDialogContext context, IAwaitable<string> result) 
{ 
    string input = await result; 
    await context.PostAsync(input); 
    context.Wait(this.MessageReceivedAsync); 
} 

这里对我来说,关键是用户选择的选项后,我可以处理内部的选择AfterPromptDialogChoice方法。我想要的是用旋转木马提示用户,当他选择其中一个旋转木马项目时,我希望将流程重定向到委托方法,在那里我可以根据用户的选择执行一些操作。

我知道使用普通轮播我可以使用CardAction发回用户选择的选项,但是此选项的值(文本)将再次发送到机器人,并且不会与用户选择相关。我只是想要PromptDialog.Choice的行为,但是用旋转木马来显示选项,而不是只有按钮这可能吗?

回答

1

您可能需要将您的PromptStyler提供给PromptChoice的PromptOptions

PromptStyler负责将适当的PromptStyle应用于选项。

这是你必须探索的东西,看看它是否会满足你的所有需求。

相关问题