我有一个正在叠加图像的网格。用户将以米为单位输入总图像长度和宽度。他们还将输入他们想要的列和行的大小。 例如,图像长143米,宽216米,他们希望网格单元宽10米,高15米。 所以我需要14个相等宽度的单元格和1个单元格,这是前一个14的宽度的30%。我通过循环添加列
FlowLayout
答案 0 :(得分:0)
问题是在最后一行的某些地方。
答案 1 :(得分:0)
public MainWindow()
{
InitializeComponent();
SetupGrid(143);
}
private void SetupGrid(double width)
{
LayoutRoot.ShowGridLines = true;
int numColumns = Convert.ToInt32(width / 10);
double remainder = width % 10;
//create whole columns
for (int i = 0; i < numColumns; i++)
{
ColumnDefinition col = new ColumnDefinition();
col.Width = new GridLength(10, GridUnitType.Star);
LayoutRoot.ColumnDefinitions.Add(col);
//adding a textblock just so show the placement
TextBlock t = new TextBlock();
t.HorizontalAlignment = HorizontalAlignment.Center;
t.Text = i.ToString();
LayoutRoot.Children.Add(t);
Grid.SetColumn(t, i);
}
//create remainder
ColumnDefinition colr = new ColumnDefinition();
colr.Width = new GridLength(remainder, GridUnitType.Star);
LayoutRoot.ColumnDefinitions.Add(colr);
//adding a textblock just so show the placement
TextBlock t2 = new TextBlock();
t2.HorizontalAlignment = HorizontalAlignment.Center;
t2.Text = remainder.ToString();
LayoutRoot.Children.Add(t2);
Grid.SetColumn(t2, numColumns + 1);
}