【问题标题】:Find cell at given screen position in grid在网格中的给定屏幕位置查找单元格
【发布时间】:2014-11-12 23:15:00
【问题描述】:

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

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    好的,我找到了这样的功能:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-01
      相关资源
      最近更新 更多