You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terminal.Gui控件文本超出边界:如何实现自动换行?

解决Terminal.Gui中Label文本自动换行问题

要让Label文本到达容器边缘自动换行,只需调整两个关键属性,修改后的代码如下:

Application.Init();
var top = Application.Top;
var mainWindow = new Window("The")
{
    X = 0,
    Y = 1,
    Width = Dim.Fill(),
    Height = Dim.Fill(),
};
var frame1 = new FrameView();
frame1.Width = Dim.Percent(30, false);
frame1.Height = Dim.Fill();
frame1.Title = "Archives";
mainWindow.Add(frame1);

var frame2 = new FrameView();
frame2.Width = Dim.Percent(70, false);
frame2.Height = Dim.Fill();
frame2.X = Pos.Right(frame1);
frame2.Title = "Viewer";
mainWindow.Add(frame2);

top.Add(mainWindow);
Label lbl = new Label("helllllllo world helllllllo world helllllllo world ")
{
    // 开启自动换行
    WordWrap = true,
    // 宽度占满frame2的可用空间(也可根据需求设固定值)
    Width = Dim.Fill(),
    // 高度自动适配换行后的文本内容
    Height = Dim.Fit()
};
frame2.Add(lbl);

Application.Run();
Application.Shutdown();

关键说明:

  • WordWrap = true:这是实现自动换行的核心属性,开启后Label会在文本到达宽度边界时自动换行。
  • Width = Dim.Fill():让Label宽度适配父容器(frame2)的可用宽度,也可根据需求设置固定宽度(比如你原来的10)。
  • Height = Dim.Fit():自动计算并设置Label高度,确保所有换行后的文本都能显示,不会被截断。

内容的提问来源于stack exchange,提问作者user9634100

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 05:01:02