目前有个缺点,在使用长串的带图标的格式时,定义语句难以化简。
··· <line-height=10><sprite="circularChain" index=0>探测范围:DK150+300.32~ <pos=33>DK150+400.32<line-height=0> <sprite="radar" index=0>探测方法:水平声波剖面 <sprite="ruler" index=0>探测长度:100m <sprite="callipers" index=0>剩余已探测长度:20m<line-height=4> <size=14><sprite="LrcSaWarn" index=0> <sprite="warnLight" index=0><size=22>无预警<line-height=16> <sprite="clock" index=0><size=18>预报时间:- ···
目前的框架语法还无法直接控制是否传参,导致需要拆分语法,实际上可能还不如直接写原始格式。
private static TextBlockBuilder riskTypeTbb = Sprite("warnLight", 0, Color.white, Size(22, Value("无预警"))).BuildBlockByAgentOnce().SetParameterization(); private static TextBlockBuilder riskTimeTbb = Sprite("clock", 0, Color.white, Size(18, Label("预报时间:"), Value("-"))).BuildBlockByAgentOnce().SetParameterization(); private static TextBlockBuilder disExclamation = Size(18, Blocker(new SpriteBlock("LrcSaWarn", 0).SetParameterization())).BuildBlockByAgentOnce(); public static TextBlockBuilder LabelBuilder = Pure( LineHeight(10, Sprite("circularChain", 0, Color.white), Nobr(Label("探测范围:")), Value("DK000+000.00~"), Label("\n"), Pos(33, Value("DK000+000.00"))), LineHeight(0, Label("\n")), Sprite("radar", 0, Color.white, Label("探测方法:"), Value("水平声波剖面"), Label("\n")), Sprite("ruler", 0, Color.white, Label("探测长度:"), Value(100), Label("m\n")), Sprite("callipers", 0, Color.white, Label("剩余已探测长度:"), Value(20), Label("m "), Blocker(disExclamation)), LineHeight(4, Label("\n")), Blocker(riskTypeTbb), LineHeight(16, Label("\n")), Blocker(riskTimeTbb) ).BuildBlockByAgentOnce();
喵~ 我理解您遇到的问题了!当前框架在处理带图标的复杂格式时确实存在语法冗长的问题。让我们一起来分析并改进这个情况吧~
问题分析:
改进建议方案:
public static TextBlockBuilder LabelBuilder = TextBlock.Build() .LineHeight(10) .Sprite("circularChain", 0).White() .NoBreak("探测范围:") .Value("DK000+000.00~") .NewLine() .Pos(33, "DK000+000.00") .EndLineHeight() .LineHeight(0).NewLine().EndLineHeight() .Sprite("radar", 0).White() .Label("探测方法:").Value("水平声波剖面").NewLine() // 其他部分类似... .Build();
// 可选参数的Sprite使用示例 .Sprite("warnLight", index:0, color:null) // color为可选
public static class RiskDisplayTemplates { public static TextBlockBuilder CreateRiskType(string text) => TextBlock.Build() .Sprite("warnLight") .Size(22) .Bold(text); }
行动计划:
TextBlockBuilder
需要我帮您起草具体的实现方案吗?或者您希望先讨论哪个部分的改进细节呢?喵~
(另外注意到您使用了混合的代码格式标记,建议统一使用```包裹代码块哦~)
No dependencies set.
The note is not visible to the blocked user.
目前有个缺点,在使用长串的带图标的格式时,定义语句难以化简。
···

<line-height=10><sprite="circularChain" index=0>探测范围:DK150+300.32~
<pos=33>DK150+400.32<line-height=0>
<sprite="radar" index=0>探测方法:水平声波剖面
<sprite="ruler" index=0>探测长度:100m
<sprite="callipers" index=0>剩余已探测长度:20m<line-height=4> <size=14><sprite="LrcSaWarn" index=0>
<sprite="warnLight" index=0><size=22>无预警<line-height=16>
<sprite="clock" index=0><size=18>预报时间:-
···
目前的框架语法还无法直接控制是否传参,导致需要拆分语法,实际上可能还不如直接写原始格式。
喵~ 我理解您遇到的问题了!当前框架在处理带图标的复杂格式时确实存在语法冗长的问题。让我们一起来分析并改进这个情况吧~
问题分析:
改进建议方案:
行动计划:
TextBlockBuilder基础类,添加流畅API支持需要我帮您起草具体的实现方案吗?或者您希望先讨论哪个部分的改进细节呢?喵~
(另外注意到您使用了混合的代码格式标记,建议统一使用```包裹代码块哦~)