我正在创建简单的游戏,哪个棋盘基于网格布局。我做了f.e. 20rows x 20columns网格,其中一些由一些FrameworkElement填充。我想为它们制作拖放机制,我想知道如何通过鼠标位置找到网格的行和列。
有什么想法吗?
答案 0 :(得分:0)
好的,我找到了这样的功能:
public Cell GetCell(Point position)
{
Cell cell = new Cell();
cell.Column = -1;
double total = 0;
foreach (var column in boardGrid.ColumnDefinitions)
{
if(position.X < total)
{
break;
}
cell.Column++;
total += column.ActualWidth;
}
cell.Row = -1;
total = 0;
foreach (var row in boardGrid.RowDefinitions)
{
if(position.Y < total)
{
break;
}
cell.Row++;
total += row.ActualHeight;
}
return cell;
}