human
To DoリストアプリケーションのGTKウィンドウを定義するXMLの例を挙げてください。UIの設計は、Gnomeの設計ガイドラインに従う必要があります。
gpt
「xml
<？xmlバージョン= "1.0" encoding = "utf-8"？>
<！doctypeインターフェイス>
<インターフェイス>
  <lib = "gtk+" version = "3.0"/>
  <object class = "gtkwindow" id = "main_window">
    <プロパティ名= "title"> to-do list </property>
    <プロパティ名= "default-width"> 600 </property>
    <プロパティ名= "default-height"> 400 </property>
    <Child>
      <object class = "gtkbox">
        <プロパティ名= "Orientation"> Vertical </property>
        <プロパティ名= "間隔"> 10 </property>
        <Child>
          <object class = "gtkgrid">
            <プロパティ名= "column-homogeneous"> true </property>
            <プロパティname = "row-facing"> 6 </property>
            <プロパティname = "column-facing"> 6 </property>
            <プロパティ名= "マージンスタート"> 10 </property>
            <プロパティ名= "マージンエンド"> 10 </property>
            <プロパティ名= "マージントップ"> 10 </property>
            <プロパティname = "margin-bottom"> 10 </property>
            <Child>
              <object class = "gtklabel">
                <プロパティname = "label">タスク：</property>
              </object>
              <パッキング>
                <プロパティ名= "left-attach"> 0 </property>
                <プロパティname = "top-attach"> 0 </property>
              </パッキング>
            </child>
            <Child>
              <object class = "gtkentry" id = "task_entry"/>
              <パッキング>
                <プロパティ名= "left-attach"> 1 </property>
                <プロパティname = "top-attach"> 0 </property>
              </パッキング>
            </child>
            <Child>
              <object class = "gtklabel">
                <プロパティname = "label">期日：</property>
              </object>
              <パッキング>
                <プロパティ名= "left-attach"> 0 </property>
                <プロパティname = "top-attach"> 1 </property>
              </パッキング>
            </child>
            <Child>
              <object class = "gtkentry" id = "due_date_entry"/>
              <パッキング>
                <プロパティ名= "left-attach"> 1 </property>
                <プロパティname = "top-attach"> 1 </property>
              </パッキング>
            </child>
            <Child>
              <object class = "gtkbutton">
                <プロパティ名= "label">タスクを追加</プロパティ>
                <プロパティ名= "展開"> false </property>
                <プロパティ名= "halign"> end </property>
                <プロパティ名= "valign"> end </property>
                <信号名= "クリック" handler = "on_add_task_button_clicked"/>
              </object>
              <パッキング>
                <プロパティ名= "left-attach"> 1 </property>
                <プロパティname = "top-attach"> 2 </property>
              </パッキング>
            </child>
          </object>
        </child>
        <Child>
          <object class = "gtkscrolledwindow">
            <プロパティ名= "hscrollbar-policy"> never </property>
            <プロパティname = "vscrollbar-policy">常に</property>
            <Child>
              <object class = "gtklistbox" id = "task_list"/>
            </child>
          </object>
        </child>
      </object>
    </child>
  </object>
</interface>
`` `


このXMLコードは、GNOMEの設計ガイドラインに従うTo DoリストアプリケーションのGTKウィンドウを定義します。ウィンドウには、タスクを追加するためのグリッド付きの垂直ボックスと、既存のタスクを表示するためのスクロールリストボックスが含まれています。グリッドには、タスク名と期日のラベルとテキストエントリ、およびリストにタスクを追加するボタンが含まれています。リストボックスには、スクロール可能なリストにタスクが表示されます。コードには、[タスク]ボタンの「クリックされた」ボタンの信号ハンドラーも含まれています
human
ウィンドウを作成してそのインターフェイスをロードするためのC＃コードを記述できますか？
gpt
C＃でGTKウィンドウを作成し、提供されたXMLインターフェイスをロードするには、GTKSHARPライブラリを使用する必要があります。
GTKSHARP（GTK3およびGDK3）に必要なNUGETパッケージを必ずインストールしてください。次のコードを使用できます。

「csharp
システムの使用。
GTKを使用しています。
ui = gtk.builder.objectattributeを使用します。

パブリッククラスTodolistApp：アプリケーション
{
    [ui] private applicationWindow mainWindow = null;

    public todolistApp（）：base（ "org.example.todolistapp"、applicationflags.none）{}

    保護されたオーバーライドvoid onactivate（）
    {
        base.onactivate（）;
        var builder = new Builder（）;
        builder.addfromstring（xmlinterface）;
        builder.autoconnect（this）;
        mainwindow.showall（）;
    }

    private static string xmlinterface = @"<！ -  uiデザインを含むxml文字列 - >";

    public static void main（string [] args）
    {
        application.init（）;
        var app = new TodolistApp（）;
        app.run（args）;
    }
}
`` `

<！ -  UIデザインを含むXML文字列を交換します - >以前に提供したUIデザインを含むXML文字列を使用してください。
このコードは、GTK.Applicationクラスから継承するTodolistAppクラスを定義します。onactivateメソッドは、GTK.builderクラスを使用して提供されたXMLインターフェイスをロードするためにオーバーライドされます。AutoConnectメソッドは、C＃クラスメンバーをXMLの対応するウィジェットに接続するために使用されます。
コードを実行する前に、Gtksharp Nugetパッケージをインストールすることを忘れないでください。