<Grid x:Name="gv">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock x:Name="aaa" Text="asd" Height="40" Grid.Column="0"/>
</Grid>
所以基本上我在后端创建了一个元素,并希望将它添加到第1列的gv网格中,我应该怎么做?
TextBlock frName = new TextBlock();
frName.Text = "123";
gv.Children.Add(frName);
在xaml中,它看起来像我猜的
<TextBlock Text="123" Height="40" Grid.Column="1"/>
我无法在文档中找到任何属性或任何注释,以确定如何放入所需的列。
的PS。
我也在后端创建网格列定义,但我发现它很容易完成,不确定我是否以合理的方式完成。
Grid tg = new Grid();
GridLength cw = new GridLength(70);
ColumnDefinition cd;
for (int i = 0; i < 4; i++) {
cd = new ColumnDefinition();
cd.Width = cw;
tg.ColumnDefinitions.Add(cd);
}
答案 0 :(得分:1)
Grid.Row和Grid.Column(以及Canvas.Left和Canvas.Top)是附加属性。它们由容器类(Grid或Canvas)声明,而不是由它们设置的DependencyObject声明。请参阅MSDN上的Attached properties overview。
要在代码中设置附加属性,请使用SetValue方法和属性的标识符。 GetValue将返回该属性。
frName.SetValue(Grid.ColumnProperty,1);
创建网格及其列的代码基本上是正确的。您仍然需要将它添加到可视树中的容器,类似于使用gv.Children.Add(frName)添加frName的方式