3

C# でプログラミングを始めたいと思っています (過去に少し勉強したことがあり、Java と多くの類似点があることを知っています)。

しかし、私が Java で気に入っているのは、コンポーネントをコードでレイアウトできることです。私はフォーム デザイナーが大嫌いです。私の知る限り、Visual Studio ではそのような条件はありません。

C# にレイアウト マネージャーなどがあるかどうかを知りたいです。

ティア、アンドレ

4

5 に答える 5

3

使用するユーザー インターフェイス テクノロジによって異なります。

WPF/Xaml と Windows Forms はどちらも完全にコードで実行できますが、WPF は Xaml での使用に適しているため、少し複雑です。

Windows フォームでは、デザイナーが実際に必要なコードをビルドするため (form.designer.cs を参照)、これを "手作業で" 記述するには何が必要かを正確に確認できます。

WPF の場合は少し複雑ですが、それでも可能です。 Charles Petzold の WPF ブックは実際にこのアプローチを採用しており、WPF ユーザー インターフェイスを構築するためのコード ファーストのアプローチから始め、その後でマークアップ (xaml) の使用方法を示しています。そうは言っても、Xaml のアプローチは、すべてをコードで行うよりもはるかに優れており、さまざまな点で柔軟性があります。

于 2012-06-27T16:01:03.957 に答える
2

WinFormsのJavaと同様に動作させる方法があります

WPFには、いくつかの異なるレイアウトマネージャーがあります。ドキュメントを参照してください

于 2012-06-27T16:09:13.880 に答える
1

バックグラウンドで、レイアウトのコードが生成されます。myfile.designer.cs ファイルでコードを確認できます。

以下の画像は、Visual Studio でのレイアウトを示しています。

  • 左: レイアウト コントロール
  • 右: Java にあるような FlowLayout の例

ここに画像の説明を入力

フローレイアウト用にこれらを生成したコードを見てください。そのため、そのような他のコントロールを実行して、それがどのように生成されているかを学ぶことができます

       this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
        this.button1 = new System.Windows.Forms.Button();
        this.button2 = new System.Windows.Forms.Button();
        this.button3 = new System.Windows.Forms.Button();
        this.button4 = new System.Windows.Forms.Button();
        this.flowLayoutPanel1.SuspendLayout();
        this.SuspendLayout();
        // 
        // flowLayoutPanel1
        // 
        this.flowLayoutPanel1.Controls.Add(this.button1);
        this.flowLayoutPanel1.Controls.Add(this.button2);
        this.flowLayoutPanel1.Controls.Add(this.button3);
        this.flowLayoutPanel1.Controls.Add(this.button4);
        this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.LeftToRight;
        //Other directions: BottomUp, RightToLeft, TopDown

        this.flowLayoutPanel1.Location = new System.Drawing.Point(12, 42);
        this.flowLayoutPanel1.Name = "flowLayoutPanel1";
        this.flowLayoutPanel1.Size = new System.Drawing.Size(200, 71);
        this.flowLayoutPanel1.TabIndex = 0;

しかし、デザイナーはあなたの時間を節約します。

于 2012-06-27T16:15:20.540 に答える
1

デザイナーの使用を強制する人はいません。すべてをゼロからハードコーディングできます。Visual Studio でこれを行うことはできないと誰が言ったのかわかりませんが、私はその人の言うことを聞くのをやめます。

于 2012-06-27T16:01:15.953 に答える
0

Web以外のものについてはSystem.Windows.Formsをチェックしてください

System.drawing と system.text も興味深いかもしれませんが、ほとんどの UI は system.windows.forms にあります。

于 2012-06-27T16:10:44.770 に答える