【问题标题】:Change separator property of a adaptive card bot framework更改自适应卡片机器人框架的分隔符属性
【发布时间】:2020-03-01 17:32:45
【问题描述】:

我在自适应卡的文本块中使用了 Separator 属性,属性正在工作,但我需要更新 Separator 的厚度和线条颜色,下面是代码,但它没有得到反映。我正在使用机器人框架 v3

SeparatorConfig separatorConfig = new SeparatorConfig();

separatorConfig.LineThickness = 2;
separatorConfig.LineColor = "Black";

card.Body.Add(new AdaptiveTextBlock()
{
    Text = QuestionValue,
    Size = AdaptiveTextSize.Default,
    Weight = AdaptiveTextWeight.Bolder,
    Wrap = true,
    Separator = true,                                        
});

【问题讨论】:

  • 你还在做这个吗?
  • 是的,我已经实现了,问题已经解决了。
  • 很高兴听到这个消息。你会继续支持我的答案并将其标记为正确吗?

标签: c# asp.net botframework azure-bot-service adaptive-cards


【解决方案1】:

首先,您需要了解自适应卡片的用途。当您创作一张自适应卡片时,您有意放弃了对该卡片外观的大量控制。这是因为自适应卡片旨在适应其环境,因此它们看起来像是属于任何呈现它们的应用程序。您尝试对分隔符进行的控制实际上是不取决于卡片作者的事情之一,而是取决于卡片 renderer

其次,您需要考虑代码中的一些危险信号。您正在使用的AdaptiveCards 库实际上包含可供卡片作者使用的代码以及可供卡片渲染器使用的代码。 SeparatorConfig 类位于 AdaptiveCards.Rendering 命名空间中,这意味着它旨在供渲染器使用。另请注意,当您创建 SeparatorConfig 对象并为其属性分配值时,您实际上并没有将其传递给 AdaptiveTextBlock 或对它做任何事情。

如果您可以控制客户端应用程序,则只能配置分隔符。如果您使用的是其他人的客户端应用程序,例如 Microsoft Teams,那么您必须接受分隔符的外观不是您可以配置的。如果您正在制作自己的客户端应用程序,则可以使用 HostConfig 自定义分隔符。

有关自适应卡片的更多信息,请参阅my latest blog post

【讨论】:

  • 我的问题是我们如何将我设置的属性传递给我的文本块
【解决方案2】:

顺便说一句,Kyle 的回答是正确的,如果您不是渲染卡片的人,则无法更改分隔符。

就在那里的代码示例中,您应该真正了解自适应卡片模板。 https://docs.microsoft.com/en-us/adaptive-cards/templating/

它使整个故事变得更加容易。

【讨论】:

    猜你喜欢
    • 2021-05-01
    • 2017-10-18
    • 1970-01-01
    • 2019-12-02
    • 2019-08-26
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多