我必须根据List或ObservableCollection中的值以编程方式设置WPF Grid内的CELL高度。请注意,我想设置CELL的高度而不是ROW。
请注意,网格是以编程方式生成的
Grid myGrid = new Grid();
ColumnDefinition colDef1 = new ColumnDefinition();
ColumnDefinition colDef2 = new ColumnDefinition();
ColumnDefinition colDef3 = new ColumnDefinition();
myGrid.ColumnDefinitions.Add(colDef1);
myGrid.ColumnDefinitions.Add(colDef2);
myGrid.ColumnDefinitions.Add(colDef3);
// Define the Rows
RowDefinition rowDef1 = new RowDefinition();
RowDefinition rowDef2 = new RowDefinition();
RowDefinition rowDef3 = new RowDefinition();
RowDefinition rowDef4 = new RowDefinition();
myGrid.RowDefinitions.Add(rowDef1);
myGrid.RowDefinitions.Add(rowDef2);
myGrid.RowDefinitions.Add(rowDef3);
myGrid.RowDefinitions.Add(rowDef4);
网格的每个单元格都包含文本框或边框,如下所示。
ColumnDefinition column = new ColumnDefinition();
myGrid.ColumnDefinitions.Add(column);
Border b = new Border();
b.BorderBrush = Brushes.Black;
b.BorderThickness = new Thickness(2);
b.Padding = new Thickness(10);
TextBlock txt3 = new TextBlock();
txt3.Text = "Hello";
txt3.FontSize = 12;
txt3.FontWeight = FontWeights.Bold;
txt3.TextWrapping = TextWrapping.Wrap;
txt3.Margin = new Thickness(2);
Grid.SetColumn(txt3,2);
b.Child = txt3;
//Grid.SetColumn(txt3, 2);
//Grid.SetRowSpan (txt3,2);
//myGrid.Children.Add(txt3);
Grid.SetColumn(b, 2);
Grid.SetRowSpan(b, 2);
myGrid.Children.Add(b);
答案 0 :(得分:0)
这没有任何意义。你怎么能有一个高度不同于行的单元格?那是行不通的。
您应该在RowDefinition上为该单元格的行设置高度。
答案 1 :(得分:0)
首先,您必须注意,将单元格高度设置为多于行,将导致单元格被切断。
第二件事是,没有单元格,想象网格作为二维数组 - 你只能设置内容 - 如果内容溢出有两种可能的方式 - 单元格内容将被切断或RowHeight将基于增加连续的最高内容 - 与列相同。
也许如果您向我们提供您填写表格的图形示例,以及为什么单元格的高度会增加,我们会帮助您找到合适的解决方案。
但是现在,你走错路了......