Bor*_*ris 8 wpf canvas wpf-controls uielement wpf-positioning
我有一个画布和一个红色矩形.
Rectangle有一个MouseDown事件处理程序实现:
private void RedRectangle_MouseDown(object sender, MouseButtonEventArgs e)
{
CreateMyBorder();
}
Run Code Online (Sandbox Code Playgroud)
该CreateMyBorder方法应该创建一个Border与画布上的矩形具有相同大小和位置的UIElement ,即它应该覆盖红色矩形.
复制Width和Height红色矩形的属性和设置它们的Border元件是容易的:
myBorder.Height = RedRectangle.Height;
myBorder.Width = RedRectangle.Width;
Run Code Online (Sandbox Code Playgroud)
但是,经过2个小时的试错后,我无法在画布上复制红色矩形的位置!预期的:
double x = RedRectangle.GetValue(Canvas.Left);
double y = RedRectangle.GetValue(Canvas.Top);
myBorder.SetValue(Canvas.Left, x);
myBorder.SetValue(Canvas.Top, y);
Run Code Online (Sandbox Code Playgroud)
不起作用x和y变量值NaN.为什么?
请帮助,我无法相信,UIElement在面板上获得和设置位置这样的微不足道的事情可能会非常恼人.谢谢.
Sim*_*ier 12
您可以使用静态函数Canvas:
Canvas.SetLeft(element, x);
Canvas.SetTop(element, y);
Run Code Online (Sandbox Code Playgroud)
要注意,Canvas从未显示与元件Left或Top等于double.NaN,这是缺省值Left和Top.
| 归档时间: |
|
| 查看次数: |
15849 次 |
| 最近记录: |