C# でプログラミングを始めたいと思っています (過去に少し勉強したことがあり、Java と多くの類似点があることを知っています)。
しかし、私が Java で気に入っているのは、コンポーネントをコードでレイアウトできることです。私はフォーム デザイナーが大嫌いです。私の知る限り、Visual Studio ではそのような条件はありません。
C# にレイアウト マネージャーなどがあるかどうかを知りたいです。
ティア、アンドレ
C# でプログラミングを始めたいと思っています (過去に少し勉強したことがあり、Java と多くの類似点があることを知っています)。
しかし、私が Java で気に入っているのは、コンポーネントをコードでレイアウトできることです。私はフォーム デザイナーが大嫌いです。私の知る限り、Visual Studio ではそのような条件はありません。
C# にレイアウト マネージャーなどがあるかどうかを知りたいです。
ティア、アンドレ
使用するユーザー インターフェイス テクノロジによって異なります。
WPF/Xaml と Windows Forms はどちらも完全にコードで実行できますが、WPF は Xaml での使用に適しているため、少し複雑です。
Windows フォームでは、デザイナーが実際に必要なコードをビルドするため (form.designer.cs を参照)、これを "手作業で" 記述するには何が必要かを正確に確認できます。
WPF の場合は少し複雑ですが、それでも可能です。 Charles Petzold の WPF ブックは実際にこのアプローチを採用しており、WPF ユーザー インターフェイスを構築するためのコード ファーストのアプローチから始め、その後でマークアップ (xaml) の使用方法を示しています。そうは言っても、Xaml のアプローチは、すべてをコードで行うよりもはるかに優れており、さまざまな点で柔軟性があります。
WinFormsのJavaと同様に動作させる方法があります
WPFには、いくつかの異なるレイアウトマネージャーがあります。ドキュメントを参照してください
バックグラウンドで、レイアウトのコードが生成されます。myfile.designer.cs ファイルでコードを確認できます。
以下の画像は、Visual Studio でのレイアウトを示しています。
フローレイアウト用にこれらを生成したコードを見てください。そのため、そのような他のコントロールを実行して、それがどのように生成されているかを学ぶことができます
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;
しかし、デザイナーはあなたの時間を節約します。
デザイナーの使用を強制する人はいません。すべてをゼロからハードコーディングできます。Visual Studio でこれを行うことはできないと誰が言ったのかわかりませんが、私はその人の言うことを聞くのをやめます。
Web以外のものについてはSystem.Windows.Formsをチェックしてください
System.drawing と system.text も興味深いかもしれませんが、ほとんどの UI は system.windows.forms にあります。