如何将TextBlock与网格动态关联';s列
本文关键字:关联 动态 TextBlock 网格 | 更新日期: 2023-09-27 18:24:39
我想动态创建一个单行网格,并向其中添加一些TextBlock,将每个TextBlock分配/关联到网格中的不同列。我有这个代码:
SolidColorBrush samHagar = new SolidColorBrush(Colors.Red);
System.Windows.Thickness mrg = new Thickness(2);
// Create a Grid
Grid grd = new Grid();
. . . // TODO: add columns
//...add the Grid to the StackPanel
spNufan.Children.Add(grd);
// Create TextBlock and dynamically add it to the Grid
TextBlock tbDynamo = new TextBlock();
tbDynamo.Background = samHagar;
tbDynamo.TextWrapping = TextWrapping.Wrap;
//tbDynamo.Grid.Column = 0; <- no go, Joe!
tbDynamo.Margin = mrg;
tbDynamo.TextAlignment = TextAlignment.Left;
tbDynamo.VerticalAlignment = VerticalAlignment.Center;
tbDynamo.Text = "Whatever";
spNufan.Children.Add(grd);
如何将我的TextBlock("tbDynamo")与我的Grid("grd")关联?
设置对象的Grid.Column
属性,然后将对象添加到网格
Grid.SetColumn(tbDynamo, 0);
grd.Children.Add(tbDynamo);
附带说明一下,您实际上不需要将其设置为0,因为除非另有指定,否则Grid
中的项将默认为Grid.Row=0
和Grid.Column=0
。
您需要使用Grid.SetColumn(tbDynamo, 0);
它应该是类似的东西
// untested
// spNufan.Children.Add(grd); // already done earlier
grd.Children.Add(tbDynamo);
Grid.SetRow(tbDynamo, i);
但我会先认真研究StackPanel和ListBox。它们似乎比网格更合适
您希望滚动的外观如何?