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

Dotnet6+Gtk#3.24.24中Box垂直方向写法报错,求新方法指导

解决Gtk#中Box垂直方向初始化报错的问题

问题根源

你遇到的报错是因为Gtk#的枚举命名遵循C#规范(PascalCase),而非GTK原生C API的全大写风格,所以Gtk.Orientation.VERTICAL是无效的,正确的枚举成员是Gtk.Orientation.Vertical。

正确的新写法替换

直接将代码中的全大写枚举值改为首字母大写的形式即可:

// 错误写法
// Box vbox = new Box(Gtk.Orientation.VERTICAL, 6);

// 正确写法
Box vbox = new Box(Gtk.Orientation.Vertical, 6);

完整验证示例

以下是一个可运行的简单示例,展示垂直Box的正确使用:

using Gtk;

class ListViewTest
{
    static void Main()
    {
        Application.Init();
        
        var mainWindow = new Window("Vertical Box ListView Container");
        mainWindow.DeleteEvent += (sender, args) => Application.Quit();
        mainWindow.SetDefaultSize(300, 400);

        // 初始化垂直布局的Box
        var verticalBox = new Box(Gtk.Orientation.Vertical, 6);
        
        // 向Box中添加示例控件模拟ListView结构
        verticalBox.PackStart(new Label("列表项 1"), expand: true, fill: true, padding: 0);
        verticalBox.PackStart(new Label("列表项 2"), expand: true, fill: true, padding: 0);
        verticalBox.PackStart(new Label("列表项 3"), expand: true, fill: true, padding: 0);

        mainWindow.Add(verticalBox);
        mainWindow.ShowAll();
        
        Application.Run();
    }
}

额外检查点

  • 确认项目中引用的GtkSharp包版本正确,项目文件(.csproj)中应包含:
    <PackageReference Include="GtkSharp" Version="3.24.24.95" />
    
  • 无需自定义VBox类,Gtk3的Box组件完全可以替代旧版VBox的功能,只需指定正确的方向枚举即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:10:03