1

我有以下场景(尝试实现跳棋游戏):

我已经声明了一个 8 行 8 列的网格。在其中一些中,我通过以下方式以编程方式绘制了一些椭圆:

this.myGrid.Children.Add(coin);

此时所有的椭圆都画好了。问题是我不知道如何删除或隐藏特定列。我试过这些代码行:

this.gridTablero.Children.RemoveAt(1);
this.gridTablero.Children[1].Visibility = System.Windows.Visibility.Collapsed;

但是这些代码行删除了网格的矩形而不是椭圆。我试图看看我是否可以访问单元格内的椭圆,但不是运气:-(

如果有人知道如何做到这一点,任何帮助将不胜感激。

4

1 回答 1

0

Children属性与网格布局无关,该属性是类的一部分(Panel类的基Grid类),它只包含子元素的集合,没有任何关于布局的信息。

因此,在您的示例this.gridTablero.Children.RemoveAt(1);中,从Grid. 如您所见,设置Collapsed只是更改Visibility第二个元素的属性。

这是您可以从第二行删除所有元素的方法:

void HideAllElementsOnRow(int rowIndex)
{
    // Start from end so we can remove elements and continue to enumerate collection
    for (int index = this.gridTablero.Children.Count - 1; index >= 0; index--)
    {
        // If current element located on rowIndex position - we will remove it.
        if (Grid.GetRow(this.gridTablero.Children[index]) == rowIndex)
        {
            this.gridTablero.Children.RemoveAt(index);
        }
    }
}
于 2013-06-13T05:45:38.400 回答