2016-04-20 11 views
3

C#でカスタムGUIを作成することに興味があり、そのための最善の方法をいくつかアドバイスしたいと思います。添付された画像は、一般的に私が作成したいもの、つまりテキスト、ボックス/背景、画像、線、円、その他のGUI要素(テキスト入力フィールドなど)です。C#でカスタムGUIを作成する方法

どこから始めたらよいかわからないが、Google検索で盛り上がるのは、GDI +とペイントイベントを使って、私が探していることをすることができるかもしれないが、私はわからないそれはそうしたことを作る方法です、あるいはそれが仕事のための間違ったツール(それは別の何かに比べて遅い/非効果的である)です。

//something along the lines of this: 
private void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    System.Drawing.Graphics graphicsObj; 

    graphicsObj = this.CreateGraphics(); 

    Pen myPen = new Pen(System.Drawing.Color.Red, 5); 

    Rectangle myRectangle = new Rectangle(20, 20, 250, 200); 

    graphicsObj.DrawRectangle(myPen, myRectangle); 
} 

私が間違って何かを言いましたら、お時間をいただきありがとうございます。私は私が探しているものをGoogleに説明することさえ困難です---あなたの助けは本当に感謝しています!!!!

A cool looking node based GUI thing from 3ds max

+2

WPFでたくさん働いている人として、WPFを使用することができます。しかし、私はそれが最善の解決策であるとは思わない。私はゲームエンジンも扱っていますが、C++と独自のGUIライブラリを使用しています。他の答えを聞くことに本当に興味があります。 – Kolky

+0

あなたは間違いなくすべてのペイントイベントを使いたくありません。 GUIは、コントロール、コントロール、その他のコントロールで構成されています。いくつかのWinFormsまたはWPFフレームワークを購入してください。 –

+1

これは、アプリケーションに完全に依存し、GUIエレメントがその背後にあるプログラムロジックとどのようにやり取りする必要があるかによって、かなり広い質問です。 WPFのMVVMは、GUIデザイナーがその背後にあるビジネスロジックプログラマーから独立していることを意味します。もちろん、いくつかのオーバーヘッドとレイテンシが発生しますが、汎用GUI /プログラムのやりとりではかなり良いアプローチです。 – Adwaenyth

答えて

2

あなたのためのオプションWPFですか?私はあなたが提供したスクリーンショットに基づいてそれをお勧めします。このデスクトップGUI技術は、使用しているコードサンプルが示唆しているようにWinFormsよりはるかに適しています。

  • 私が提供したリンクを介してWPFとXAMLの基本を学びます。
  • はその後Canvasパネル
  • について学ぶその後、私はあなたがさて、これはあなたが軌道に乗る必要がありますについてTemplates

を学ぶお勧めします。特にご不明な点がございましたら、お気軽にお問い合わせください。

更新アイテムコントロールのキャンバスパネルの例:https://dannyvanderkraan.wordpress.com/2015/02/12/wpf-listbox-with-arbitrary-positioning-and-custom-shaped-items/

+0

お返事ありがとうございました。正直言って、私はWPF(それにはhtmlを探しているものがたくさんあります)以外はあまりよく分かりません。 どのようにWPFはWinFormsよりもはるかに適していますか? ご協力いただきありがとうございます。 –

+0

パフォーマンスの理由の次に(WinFormsとは異なるグラフィックスを描画します)、XAMLに頼るコアなので、リッチなGUIを開発するのに適しています。 WinFormsでは、自分のWinControlをハックしたり、必要なものを得るために非常に高価なものを購入しなければならないことがよくあります。WPFでは、例えば、あなたの例ではItemsTemplateとしてCanvasパネルをItemsControlに配置し、さまざまなコントロールから集めたItemTemplateに従って各アイテムをレンダリングして、スクリーンショットのように見えるようにすることができます。すべてがネイティブにサポートされています。素敵でスムーズな開発者体験。 –

+0

これ以上はうまくいかないので、おかげさまでもう助けてくれてありがとう! –

0

あなたはWPFを使用したり、Windowsのテーマをフォームのためにあなたが検索できます。あなたは、Windowsフォームをカスタマイズすることによって素晴らしいカスタムGUIを行うことができます。新しいプロジェクトを作成する場合は、カスタムの男(特に透過)を実装する方が簡単だからWPFをお勧めします。

関連する問題