У меня есть холст и красный прямоугольник.
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
на панели, может быть настолько раздражающим. Благодарю.