我正在尝试创建一个 WPF 程序,用户可以在其中拖动多边形顶点上的装饰器以拉伸和调整形状的大小。当鼠标抓住并拖动顶点时,它将重新绘制具有该位置的顶点的多边形。我知道可以修改宽度/高度字段以调整整体形状,但我想要做的只是改变顶点位置,并且多边形线基本上用新的顶点位置重绘一个新的多边形。
到目前为止,我有能力绘制静态大小的多边形(矩形)并在角落放置装饰器,但问题似乎是当你拖动装饰器时,装饰器框不会停留在多边形顶点上。我相信这是因为装饰器是相对于多边形(其装饰元素)的位置绘制的,而不是它所绘制的整个画布。
我想知道是否有一种方法可以简单地将装饰器定位到屏幕坐标而不是相对于形状。我的逻辑是,我可以简单地使用多边形的顶点作为位置绘制一个装饰框onRender()
,并让鼠标拖动功能获取鼠标的位置并直接更改多边形的顶点,从而也改变绘制装饰器的坐标。到目前为止,我还没有找到一种方法来做到这一点。这甚至可能吗?是否可以始终在顶点上绘制装饰器,以便在调整形状大小时与顶点对齐?如果没有,有人知道另一种方法吗?