在WPF中将组件彼此对齐

时间:2012-12-12 14:34:11

标签: wpf vb.net xaml

WPF应用程序由任意大小的统一网格组成。网格中的每个单元格都包含一个画布。每个画布都是拖放操作的目标。

当我拖动另一个画布并将其拖放到网格内的画布上时,我希望拖动的画布(源)的左上角和目标画布对齐,基本上将源放在目标的顶部。我正在寻找的行为是一种对齐网格效果。

目前,当我在NaN中使用element.GetValue(Canvas.LeftProperty)结果时。问题是确定网格内画布的角落位置,但相对于整个窗口。我更喜欢使用网格,因为它会在窗口调整大小时自动调整大小。

即使网格大小发生变化,是否可以在画面内获取画布的实际位置,或者指定画布与网格内的另一个画布对齐?

1 个答案:

答案 0 :(得分:0)

通过指定画布的顶部和左侧属性将每个画布绘制到另一个画布上来解决此问题,我不得不划伤网格。我使用

指定了每个画布的位置
Canvas.SetLeft(Me, position.X)
Canvas.SetTop(Me, position.Y) 

其中Me是画布的实例。

现在很容易获得每个画布的顶部和左侧属性。现在唯一的问题是我必须手动实现每个画布的大小调整。