[英]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.