【发布时间】:2014-11-12 23:15:00
【问题描述】:
我正在创建基于网格布局的简单游戏。我做 f.e. 20rows x 20columns 网格,其中一些由一些 FrameworkElement 填充。我想为他们制作拖放机制,我想知道如何通过鼠标位置找到网格的行和列。
有什么想法吗?
【问题讨论】:
标签: c# wpf drag-and-drop grid
我正在创建基于网格布局的简单游戏。我做 f.e. 20rows x 20columns 网格,其中一些由一些 FrameworkElement 填充。我想为他们制作拖放机制,我想知道如何通过鼠标位置找到网格的行和列。
有什么想法吗?
【问题讨论】:
标签: c# wpf drag-and-drop grid
好的,我找到了这样的功能:
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;
}
【讨论】: