簡體   English   中英

Windows Phone 7中的網格綁定?

[英]Grid Binding in Windows phone 7?

我正在一個具有3行3列的網格。我想將圖像綁定到該網格,實際上是將圖像添加到網格中,但未以正確的方式添加。

如何將12張圖像正確綁定到網格單元。我希望所有圖像的大小和寬度都正確地放置在該網格中。

 <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);
            }

        }

我認為我的版本更清楚(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);

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM