-3

C# で AutoIt 用の GUI エディタを書きたいのですが、C# が苦手です。GUI 内の任意のオブジェクトが押されたときに、オブジェクトの周りに四角 (フォーカス) を描画したいと考えています。このような:

http://i.imgur.com/c9TB8.png

このようなことを書きやすくするためのライブラリはありますか?

4

2 に答える 2

1

正方形は、DrawRectangle関数の 1 つを使用して描画されます。それぞれにペンが必要です。通常は通常のソリッド ペンを使用しますが、 DashStyleプロパティを変更したペンが必要です。点線の場合、このプロパティをDashStyle.Dotに変更します。DashPatternプロパティを試すこともできます。

大きな正方形の周りに小さな正方形を描くには、FillRectangle関数のいずれかが必要です。それぞれにブラシが必要です。便利な事前定義された白いブラシが必要です。長方形を塗りつぶした後、その上に同じ寸法で長方形を描く必要があります。これら 2 つの関数を組み合わせると、空白で線が引かれた長方形の印象を与えます。

画像のように、小さな正方形を少し丸くするには、DrawRectangle を呼び出すときに使用するペン パラメーターを変更する必要があります。LineJoinおよびPenクラスのその他のプロパティを試してください。

于 2012-10-23T22:21:55.933 に答える
0

あなたが投稿した簡単な質問にとって、これは非常に難しいことです。あなたが世話をする必要があることがたくさんあります。

  1. Rectangleまず、Rectangleは構造体であるためサブクラス化できないため、プロパティを持つクラスを作成することをお勧めします。
  2. 図面を処理する必要があります。これは、他の回答で述べられているように最も単純なタスクなので、具体的には説明しません。
  3. 長方形のサイズを変更できることを示す小さな正方形があるため、マウスポイントが大きな長方形内にあるか小さな正方形の一部内にあるかをチェックするメソッドを実装する必要があります。この場合、サイズ変更の可能性を示すためにカーソルを変更する必要があります。
  4. 長方形の移動(サイズ変更は不可)を処理するには、すべての方向に移動するための記号を使用して新しい小さな正方形を作成するか、マウスの位置が大きな長方形内にあるときにカーソルを使用して処理する必要があります。
  5. 主な問題は、サイズ変更時に何を変更するかを特定することです。2つのオプションがあります。(1)プロパティを変更するか、(2)長方形のプロパティを変更Locationします。たとえば、右上隅を移動する場合は、最初のケースでは場所とサイズの両方を変更する必要があります。2番目のオプションを使用する場合はYと幅を変更する必要があります。SizeXYWidthHeight
  6. クリックしながらマウスを動かすときは、マウスがどちらの方向に動くか注意する必要があります。長方形の中心がデカルト座標系の中心である象限にビューポートを分割する場合、どの象限がマウスであるかを識別することにより、移動する必要のある象限のコーナー(またはエッジ)がわかります。
  7. C ++のようにXorを使用することはできないため、マウスを動かすたびにInvalidate()を呼び出す必要があります。したがって、Rectangleが表示されているときは、移動しないすべてのもの(変更されない、Rectangleと選択されたコントロールを除くすべて)が2回の再描画の間に使用されるビットマップに描画される特別なモードになり、移動します。

ご覧のとおり、注意が必要なことがたくさんあります。プログラムの他の部分をすでに実装していることを確認した後でのみ、これから始める必要があります。

于 2012-10-23T23:06:56.853 に答える