如何在WPF中的网格上的两点之间画一条线

时间:2010-02-13 12:37:37

标签: wpf grid drawing line

我有一个包含100列和100行的网格。我想在其中一个网格方格的中心和另一个网格方格之间划一条线,比如45,25到75,38。

我很高兴能够绘制一条线,但我怎样才能找到两个网格方块中心的x和y pos?还是有一个我错过的更好的方法

2 个答案:

答案 0 :(得分:0)

该行中心的坐标为(center_x, center_y),其中:

center_x = x1 + (x2 - x1/2)
center_y = y1 + (y2 - y1/2)

x2 > x1y2 > y1

所以对你的例子来说:

center_x = 45 + ((75 - 45) / 2)
center_y = 25 + ((38 - 25) / 2)

HTH。

答案 1 :(得分:0)

您的演示文稿应与您定义的网格一起使用。似乎问题是您尝试加入的事物的表示不以您指定的网格位置为中心。你的线应该从45,25到75,38。如果看起来没有从中心绘制,则在45,25和75,38处绘制的东西不会绘制在网格位置的中心。

如果您的显示器是基于网格的,那么从理论上的45,25位置找到屏幕网格的中心将是这样的:

screenXcentre = ((xPos-1)*CellWidth)-(CellWidth/2);
screenYcentre = ((yPos-1)*CellHeight)-(CellHeight/2);