我有一个画布和一个放在上面的红色矩形。 矩形
实现了一个 MouseDown
事件处理程序:
private void RedRectangle_MouseDown(object sender, MouseButtonEventArgs e)
{
CreateMyBorder();
}
CreateMyBorder
方法应该创建一个与画布上的矩形大小和位置相同的 Border
UI 元素,即应该覆盖红色矩形。
复制红色矩形的 Width
和 Height
属性,并将它们设置为 Border
元素是很容易的:
myBorder.Height = RedRectangle.Height;
myBorder.Width = RedRectangle.Width;
然而,经过两个小时的试错后,我觉得在画布上复制红色矩形的位置似乎不可能!期望的结果:
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
在面板上的位置这样微不足道的事情会如此令人烦恼。谢谢。
(double)RedRectangle.GetValue(Canvas.Top);
。 - Brendan