更改自适应卡Bot框架的分隔符属性

问题描述 投票:0回答:1

我在自适应卡的文本块中使用Separator属性,该属性正常工作,但是我需要更新Separator的粗细和线条颜色,以下是代码,但未得到体现。我正在使用bot框架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个回答
0
投票

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

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

只有对客户端应用程序有控制权,才可以配置分隔符。如果使用的是Microsoft Teams之类的其他客户端应用程序,则必须接受分隔符的外观不是您要配置的外观。如果要创建自己的客户端应用程序,则可以使用AdaptiveTextBlock自定义分隔符。

有关自适应卡的更多信息,请参见HostConfig

© www.soinside.com 2019 - 2024. All rights reserved.