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

本文关键字:屏幕 位置 查找 单元格 网格 | 更新日期: 2023-09-27 18:30:10

我正在创建一个基于网格布局的简单游戏。我制作了20行x 20列的网格,其中一些网格由一些FrameworkElement填充。我想做拖动&他们的下降机制,我想知道如何找到行&按鼠标位置显示网格的列。

知道吗?

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

好的,我找到了这样的函数:

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