如何在 GTK# 中自动换行?

How to wordwrap in GTK#?

问题

我想在 GTK# 中的 window 上显示一些文本。文本长度未预先确定,需要自动换行。

要显示的示例测试

"呜----- -------------- ------------------ ---- ----------------------------------------------!” =15=]

预期结果

代码

static void Main(string[] args)
{
    Application.Init();

    Window window = new Window("helloworld");
    window.Decorated = false;   //Remove title bar.
    window.SizeAllocate(new Gdk.Rectangle(new Gdk.Point(0, 0), new Gdk.Size(100, 100)));
    var Black = new Gdk.RGBA
    {
        Alpha = 1,
        Red = 0,
        Green = 0,
        Blue = 0
    };
    var White = new Gdk.RGBA
    {
        Alpha = 1,
        Red = 1,
        Green = 1,
        Blue = 1
    };
    window.OverrideBackgroundColor(StateFlags.Normal, Black);
    window.Show();

    Label label1 = new Label("woo----- --------------- ------------------- ---------------------------------------------------!");
    label1.OverrideColor(StateFlags.Normal, White);
    label1.OverrideColor(StateFlags.Focused, White);
    label1.OverrideColor(StateFlags.Active, White);
    label1.MaxWidthChars = 20;
    label1.Show();
    window.Add(label1);

    Application.Run();
}

结果

它会自动调整 window 的大小而不换行。

再来一枪

window.Resizable = false;

如果我添加这段代码...

另一个结果

它仍然会调整 window 的大小。无法理解Resizable 属性 的功能,如果它不起作用。

怎样才能得到预期的结果?

环境

我找到了 Wrap 属性。

label1.Wrap = true;