我已经开始在WPF C#中开发一个新的应用程序。我遇到的问题是网格列定义。
我已将窗口划分为单独的部分,使用网格的行和列定义(请参阅下面的代码)。
我有两排。第一个当前是空的,第二个包含一个新的网格,进一步分为列。 所有网格都在边界内。
我得到的奇怪行为是代码的这一部分:
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="1">
<Grid>
</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="2">
<Grid>
</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="3">
<Grid>
</Grid>
</Border>
问题是,第一个“子网格”实际上对应于 第二列,第二列和第三列均指第三列。 换句话说,每当我在第二个子网格(具有Grid.Column =“2”的子网格)中放置任何类型的控件时,控件将出于某种原因出现在第三列中。
我一直在摆弄它,似乎无法理解我的行为。
另一个例子:我把控件放在第二列中如下:
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="2">
<Grid>
<TextBox Width="100" Height="50"></TextBox>
</Grid>
</Border>
整个XAML代码:
<Border BorderThickness="1" BorderBrush="#ffcd22" Margin="10,10,10,10">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border BorderThickness="1" BorderBrush="#ffcd22" Margin="-1,-1,-1,-1" Grid.Row="2">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="1">
<Grid>
</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="2">
<Grid>
</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="3">
<Grid>
</Grid>
</Border>
</Grid>
</Border>
</Grid>
答案 0 :(得分:2)
问题是列计数从0开始。你应该改变你的代码:
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="0">
<Grid>
</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="1">
<Grid>
</Grid>
</Border>
<Border BorderThickness="1" BorderBrush="#ffcd22" Grid.Column="2">
<Grid>
</Grid>
</Border>