2010-07-20 6 views
0

Je prends une grille ayant 3 lignes et 3 colonnes .je veux lier les images à cette grille en fait les images sont ajoutées à la grille, mais il n'est pas ajouté de façon correcte.I.e ils ne sont pas placés dans des cellules de grille. Comment lier correctement 12 images aux cellules de la grille .je veux que toutes les images aient la même taille et la même largeur placées correctement dans cette grille.Liaison de grille dans Windows Phone 7?

+0

'plz urgent' pour Windows Mobile 7, il est jusqu'à ce que Noël? –

Répondre

1

Je pense que ma version est plus clairement (3 col, lignes automatique):

 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

Comme l'autre réponse, ceci n'est pas contraignant, tout ce que vous faites est de créer une image et de l'ajouter aux contrôles de la grille. – Bil

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

Voici le code qui organisera les 4 images dans une rangée.

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

Ceci n'est pas contraignant, tout ce que vous faites est de créer une image et de l'ajouter aux contrôles de la grille. – Bil