【发布时间】:2012-02-15 13:17:26
【问题描述】:
我使用网格,其内容经常会更改。 在 xaml 中,它看起来像这样:
<Grid Name="grid1"/>
在 C# 中我这样做:
private void informGrid()
{
grid1= new Grid();
grid1.Background = new SolidColorBrush(Colors.Transparent);
grid1.Visibility = Visibility.Visible;
Canvas.SetZIndex(grid1, 51);
grid1.SetValue(Grid.RowProperty, 1);
grid1.Margin = new Thickness(0, 0, 0, 0);
grid1.RowDefinitions.Add(new RowDefinition { Height = new GridLength(hw) });
grid1.RowDefinitions.Add(new RowDefinition { Height = new GridLength(hw) });
grid1.ColumnDefinitions.Add(new ColumnDefinition{ Width=new GridLength(hw)});
grid1.ColumnDefinitions.Add(new ColumnDefinition{ Width=new GridLength(hw)});
grid1.ColumnDefinitions.Add(new ColumnDefinition{ Width=new GridLength(hw)});
grid1.ColumnDefinitions.Add(new ColumnDefinition{ Width=new GridLength(hw)});
grid1.ColumnDefinitions.Add(new ColumnDefinition{ Width=new GridLength(hw)});
fillGrid();
}
然后我在这个网格中添加 10 个图像,每个单元格 1(100% 工作)。 网格变得可见,具有正确的行和列定义,10 个孩子,但图片不存在。
我敢打赌,这只是一个小错误,但我没能找到它。
请帮助我。 谢谢。
【问题讨论】:
-
用图像填充网格的代码。之前在不同情况下测试过,工作 100%
-
private void fillGrid() { for (int i = 0; i < 10; i++) { Image blank = new Image(); blank.Source = (ImageSource)new ImageSourceConverter().ConvertFromString("Images/blank.png"); images.Add(blank); blank.SetValue(Grid.ColumnProperty, j); blank.SetValue(Grid.RowProperty, k); blank.Height = hw; blank.Width = hw; grid1.Children.Add(blank); -
j和k的初始化是否正确?
-
int i= images.IndexOf(blank); int k = Convert.ToInt16(Math.Floor(ind / cpr)); int j = ind % cpr;应该可以工作 -
你能检查一下他们的 i 和 k 是否一致。还有,图像HorizontalAlignment和VerticalAlignment是什么?