我正在尝试做一些简单的事情,就像通过后面的代码向6x7网格添加元素一样简单。网格在xaml中定义如下
<Grid x:Name="CalendarGrid" Grid.Row="1" Visibility="Collapsed">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
</Grid>
我有一个名为InitializeCalendar的函数,它会用按钮填充网格。不知怎的,我无法弄清楚如何指定我想要添加按钮的行和列。如何引用CalendarGrid的行和列?
void InitializeCalendar()
{
for (int i = 0; i < 6; i++)
{
for (int j = 0; i < 7; j++)
{
butArray[i + 1, j + 1] = new Button();
//CalendarGrid. I cant find function to specify the row and button
}
}
}
我发现有一个名为ColumnProperty的属性。
butArray[i + 1, j + 1].SetValue(Grid.ColumnProperty, 0);
但是我的页面中有很多网格。我如何引用CalendarGrid?任何解决方案?
谢谢,
答案 0 :(得分:2)
您必须将按钮添加到CalendarGrid。请尝试以下方式:
CalendarGrid.Children.Add(butArray[i + 1, j + 1]);
butArray[i + 1, j + 1].SetValue(Grid.ColumnProperty, columnNumber);
butArray[i + 1, j + 1].SetValue(Grid.RowProperty, rowNumber);
答案 1 :(得分:2)
您可以使用Grid.SetRow
(msdn)和Grid.SetColumn
(msdn)方法:
void InitializeCalendar()
{
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 7; j++)
{
butArray[i, j] = new Button();
butArray[i, j].Content = (i).ToString() + (j).ToString();
CalendarGrid.Children.Add(butArray[i, j]);
Grid.SetRow(butArray[i, j], i);
Grid.SetColumn(butArray[i, j], j);
}
}
}