我有一个画布和一个红色矩形放在上面。
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
在面板上获取和设置 ' 位置这样微不足道的事情会如此烦人。谢谢。