2010-07-20 78 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