2010-07-20 74 views
0

我正在采取一个有3行3列的网格。我想要将图像绑定到该网格上,实际上图像会添加到网格中,但不会以正确的方式添加,即它们不会放置在网格的单元格中。在Windows Phone 7中的网格绑定?

如何正确地将12个图像绑定到网格的单元格。我希望所有图像具有相同的大小和宽度,以正确放置网格。

+0

'PLZ urgent'为Windows Mobile 7,它是不是直到圣诞节? – 2010-07-20 06:33:22

回答

1

我觉得我的版本是更清楚(3栏,行自动):

 ColumnDefinition coldef = new ColumnDefinition(); 
     coldef.MinWidth = 135; 
     gridCat.ColumnDefinitions.Add(coldef); 
     coldef = new ColumnDefinition(); 
     coldef.MinWidth = 135; 
     gridCat.ColumnDefinitions.Add(coldef); 
     coldef = new ColumnDefinition(); 
     coldef.MinWidth = 135; 
     gridCat.ColumnDefinitions.Add(coldef); 

     RowDefinition rowdef = rowdef = new RowDefinition(); 
     rowdef.MinHeight = 135; 
     gridCat.RowDefinitions.Add(rowdef); 

     for (int i = 0; i < App.CatViewModel.Items.Count; i++) 
     { 
      Image grid_image = new Image(); 
      ImageSourceConverter c = new ImageSourceConverter(); 
      grid_image.SetValue(Image.SourceProperty, c.ConvertFromString("img/touro.png")); 
      grid_image.SetValue(Image.WidthProperty, 128.0); 
      grid_image.SetValue(Image.HeightProperty, 128.0); 

      if ((i + 1) % 3 == 0) 
      { 
       rowdef = new RowDefinition(); 
       rowdef.MinHeight = 135; 
       gridCat.RowDefinitions.Add(rowdef); 
      } 

      grid_image.SetValue(Grid.RowProperty, i/3); 
      grid_image.SetValue(Grid.ColumnProperty, i%3); 
      gridCat.Children.Add(grid_image); 

     } 
+0

像其他答案一样,这不具有约束力,您所做的只是创建一个图像并将其添加到网格控件。 – Bil 2011-08-25 00:04:20

1
<Grid HorizontalAlignment="left" Name="grid_main" Visibility="collapsed"> 
</Grid> 

这里是将4个图像排成一行的代码。

int j = 0; 
    int k = 0; 
for (i = 1; i < 13; i++) 
     { 
      grid_image = new Image(); 
      ColumnDefinition coldef = new ColumnDefinition(); 
      coldef.Width = GridLength.Auto; 
      grid_main.ColumnDefinitions.Add(coldef); 
      // do this for each row 
      RowDefinition rowdef = new RowDefinition(); 
      rowdef.Height = GridLength.Auto; 
      grid_main.RowDefinitions.Add(rowdef); 
      Grid.SetColumn(grid_image, 0); 
      Grid.SetRow(grid_image, 0); 

      if (j < 4) 
      { 
       grid_image.SetValue(Grid.RowProperty, k); 
       grid_image.SetValue(Grid.ColumnProperty, j++); 
       grid_main.Children.Add(grid_image); 
      } 
      else 
      { 
       j = 0; k = k + 1; 
       grid_image.SetValue(Grid.RowProperty, k); 
       grid_image.SetValue(Grid.ColumnProperty, j++); 
       grid_main.Children.Add(grid_image); 
      } 

     } 
+0

这没有约束力,你所做的只是创建一个图像并将其添加到网格控件。 – Bil 2011-08-25 00:03:30