0

マウスがクリックされたときに円と長方形を描画しようとしているので、マウスクリックのxコードとyコードを取得しました。

インターネットで検索したところ、C# ではこれは Margin でのみ実行できます。原点や Java のようなものはありません。コンストラクターに x と y を指定できます。

今、私はこれを正しく設定しようとしていますが、これを正しく計算する方法がわかりません:

これによれば:

http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.margin%28v=vs.95%29.aspx

rec.Margin = new Thickness(0, 0,0, 0);

誰かが私を助けることができますか?それともこれでは無理ですか?

4

2 に答える 2

1

これは WPF ですか、それとも Windows フォームですか? WPF マウス イベント引数には、GetPosition(UIElement)渡されたコントロールに相対的なマウス座標を通知するメソッドがあります。したがって、System.Windows.Controls.Canvas呼び出された上で四角形を描画しようとしている場合は、返されたをMyCanvas使用して四角形を配置できます。Pointe.GetPosition(MyCanvas)

次に例を示します。

void MyCanvas_MouseDown(object sender, MouseButtonEventArgs e)
{
    Point ClickPoint = e.GetPosition(MyCanvas);
    Rectangle Rectangle = new Rectangle();
    System.Windows.Controls.Canvas.SetTop(Rectangle, ClickPoint.Y)
    System.Windows.Controls.Canvas.SetLeft(Rectangle, ClickPoint.X)
    MyCanvas.Children.Add(Rectangle);
}
于 2012-11-14T19:54:21.517 に答える
0
void MyCanvas_MouseDown(object sender, MouseButtonEventArgs e)
{
    Point ClickPoint = e.GetPosition(MyCanvas);
    Rectangle Rectangle = new Rectangle();
    System.Windows.Controls.Canvas.SetTop(Rectangle, ClickPoint.Y)
    System.Windows.Controls.Canvas.SetLeft(Rectangle, ClickPoint.X)
    MyCanvas.Children.Add(Rectangle);
}

スペンサーに感謝します。

于 2012-11-14T22:03:10.480 に答える