在网格中的给定屏幕位置查找单元格

时间:2014-11-12 10:35:53

标签: c# wpf drag-and-drop grid

我正在创建简单的游戏,哪个棋盘基于网格布局。我做了f.e. 20rows x 20columns网格,其中一些由一些FrameworkElement填充。我想为它们制作拖放机制,我想知道如何通过鼠标位置找到网格的行和列。

有什么想法吗?

1 个答案:

答案 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;
    }