繁体   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