帆布と赤い長方形を置いています。
イベントハンドラRectangle
が実装されています:MouseDown
private void RedRectangle_MouseDown(object sender, MouseButtonEventArgs e)
{
CreateMyBorder();
}
このCreateMyBorder
メソッドは、キャンバス上の長方形Border
と同じサイズと位置でUIElementを作成することになっています。つまり、赤い長方形をカバーすることになっています。
赤い長方形のプロパティWidth
とプロパティをコピーして要素に設定するのは簡単です。Height
Border
myBorder.Height = RedRectangle.Height;
myBorder.Width = RedRectangle.Width;
しかし、2時間の試行錯誤の末、キャンバス上の赤い長方形の位置をコピーすることは不可能に思えます。期待される:
double x = RedRectangle.GetValue(Canvas.Left);
double y = RedRectangle.GetValue(Canvas.Top);
myBorder.SetValue(Canvas.Left, x);
myBorder.SetValue(Canvas.Top, y);
x
とy
変数の値がであるため、機能しませんNaN
。なんで?
UIElement
助けてください、私はパネル上のの位置を取得して設定するのと同じくらい些細なことがとても苛立たしいことがあるとは信じられません。ありがとう。