2015-05-31 64 views
0

我有一個3x3的網格,其中包含9個圖像。是否有可能將其轉換爲Images數組[] [],或只是循環通過我的網格的每個單元格?網格到數組[] []或在每個單元中查找項目

重點是在我的每個9個細胞中都有一個圖像。我只想知道哪個圖像在特定的單元格中。

編輯

這裏是我的XAML代碼,但它只是在我的佈局創建細胞

<Grid x:Name="Map"> 
     <!-- Row and coulmns definition --> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="120"/> 
      <RowDefinition Height="120"/> 
      <RowDefinition Height="120"/> 
      <RowDefinition Height="120"/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="200"/> 
      <ColumnDefinition Width="200"/> 
      <ColumnDefinition Width="200"/> 
      <ColumnDefinition Width="0"/> 
      <ColumnDefinition Width="128*" /> 
     </Grid.ColumnDefinitions> 

     <!-- Canvas & Components --> 

     <Canvas 
     x:Name="MyCanvas" 
     Background="Azure" 
     Grid.ColumnSpan="3" 
     Grid.RowSpan="3"> 
     </Canvas> 
     <Button Background="Chocolate" Content="Spin" Name="SpinButton" Grid.Row="3" Grid.Column="3" Click="SpinButton_Click" Grid.ColumnSpan="2" Margin="15,36,12,12" /> 
    </Grid> 

我主要是做everyting在C#代碼behid。 我使用Storyboard類動畫圖像,最後將我的9個圖像設置爲特定位置(每個圖像都在9個單元中)。 我得到您的代碼也嘗試將Image更改爲FrameworkElement,但無論如何它只是看到Canvas Element。也許有一個選項可以從特定座標中獲取元素?

添加圖像C#:

public List<Image> SetImages(String order) 
     { 
      List<Image> line = new List<Image>(); 

      for (int i = 0; i < imagesQty; i++) 
      { 
       Image img1 = new Image(); 
       img1.Source = ananasImage; 
       img1.Stretch = Stretch.Fill; 
       img1.Width = 200; 
       img1.Height = 120; 
       if (order.Equals("left")) 
       { 
        line.Add(img1); 
        Canvas.SetTop(img1, -200); 
        Canvas.SetLeft(img1, 0); 
        MyCanvas.Children.Add(img1); 
       } 
       else if (order.Equals("middle")) 
       { 
        line.Add(img1); 
        Canvas.SetTop(img1, -200); 
        Canvas.SetLeft(img1, 180); 
        MyCanvas.Children.Add(img1); 
       } 

       else if (order.Equals("right")) 
       { 
        line.Add(img1); 
        Canvas.SetTop(img1, -200); 
        Canvas.SetLeft(img1, 360); 
        MyCanvas.Children.Add(img1); 
       } 

      } 

      return line; 
     } 
+0

您現在可以提供代碼示例嗎? – rivanov

+0

只有行&&列定義。故事板將圖像放入其中。 – miechooy

回答

0

您可以使用GridChildren屬性來枚舉子控件。另外,您可以使用Grid.GetRowGrid.GetColumn方法來了解控件的行/列。從那裏,它只是一個位拼接的在一起的事:

int row = 3; 
int column = 2; 

var image = grid.Children.OfType<Image>().FirstOrDefault(i => Grid.GetRow(i) == row && Grid.GetColumn(i) == column); 

if (image != null) 
{ 
    // Found the picture on line 3 and column 2 
} 

另外,如果你想知道在哪個行/列您的圖片,你需要將它們添加到在第一個地方電網:

if (order.Equals("left")) 
{ 
    line.Add(img1); 
    Grid.SetColumn(img1, 0); 
    Grid.SetLine(img1, 0); 
    Map.Children.Add(img1); 
} 
else if (order.Equals("left")) 
{ 
    line.Add(img1); 
    Grid.SetColumn(img1, 1); 
    Grid.SetLine(img1, 0); 
    Map.Children.Add(img1); 
} 
// and so on 
+0

圖像一直爲空;/ – miechooy

+0

你可以顯示你的代碼和XAML嗎? –

+0

我已編輯我的帖子 – miechooy

相關問題