我正在扩展微软的调整大小 Adorner
示例,并且需要在例如拖动底部左侧手柄之后重新定位元素。
因此,如果我有一个宽度为150、高度为35的文本框,位置在我的表单上,底部左侧手柄将宽度更改为200,文本框的右侧保持不变,但左侧边缘向左移动。
因此,我需要知道 UIElement 的左上角坐标。我尝试过 Canvas.GetLeft 和 Canvas.GetTop,但它们返回 NaN,令人困惑。
我刚刚尝试了 VisualTreeHelper.GetOffset,它确实返回一个偏移量,但当您尝试在元素的排列方法中使用它时,它会消失,可能是因为偏移量中的值太大了。
在 Wpf 之前的日子里,坐标系统非常简单,我认为 Wpf 过于复杂化了。