0

線を引くための簡単なコード。

using (Graphics g = this.CreateGraphics())
        {
            g.DrawLine(Pens.Black, new Point(50, 50), new Point(100, 100));
        }

これにより、典型的な線が引かれます。ただし、ユーザーが実行時にさらに操作(ストレッチ、サイズ変更など)できるように、この行を選択可能にしたいと考えています。最初に、実行時に行を背景として操作できるコントロールを使用しようとしましたが、コントロールが重複しているために機能しませんでした。

私の質問は、実行時にこの行を選択するにはどうすればよいですか?

4

4 に答える 4

2

自分で書く必要があります。

  1. Line をラップするクラスを書く
  2. 必要なすべての追加動作をクラスに追加します (線が選択されたときに何が起こるか、線が引き伸ばされたとき、削除されたとき、色が変更されたときに何が起こるか...)
  3. オブジェクトがマウスで選択されたかどうかを管理するクラスを作成します (RayTracer)

等...

または単に使用: piccolo2dフレームワーク

構造化 2D グラフィックス フレームワーク

于 2013-06-27T13:42:21.883 に答える
0

すでに回答を受け入れているため、少し遅すぎるかもしれませんが、これには WPF を検討する必要があります。

https://stackoverflow.com/a/15469477/643085

これは、WPF + MVVM で求めているものの正確なサンプルです。あらゆる winforms アプローチよりも多くの利点があります (ハードウェア アクセラレーションによるちらつきがないなど)。

少なくとも試してみてください。完全な CSProj プロジェクト ソースが利用可能です。

あなたは本当に、GDI でこれらすべてを自分で実装する車輪を再構築しています。最終的にはちらつきなどで使えなくなります。

于 2013-06-29T02:45:07.723 に答える
0

あなたが探しているのは、Graphics オブジェクトを選択可能にすることだと思いますか? その場合、ロジックを MouseOver および MouseButton イベントに入れることができます。これをチェックしてください、それはあなたにいくつかの洞察を与えるかもしれません.

選択可能なグラフィックス オブジェクト

于 2013-06-27T13:42:22.420 に答える