C# 如何通过编程设置WPF网格单元的高度(以*的倍数为单位)?
我必须根据列表或ObservableCollection中的值,以编程方式设置WPF网格中单元格的高度。请注意,我要设置单元格的高度,而不是行的高度 请注意,网格是以编程方式生成的C# 如何通过编程设置WPF网格单元的高度(以*的倍数为单位)?,c#,.net,wpf,silverlight,windows-phone-7,C#,.net,Wpf,Silverlight,Windows Phone 7,我必须根据列表或ObservableCollection中的值,以编程方式设置WPF网格中单元格的高度。请注意,我要设置单元格的高度,而不是行的高度 请注意,网格是以编程方式生成的 Grid myGrid = new Grid(); ColumnDefinition colDef1 = new ColumnDefinition(); ColumnDefinition colDef2 = new ColumnDefinition(); ColumnDefinition colDef3 = new
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);
这毫无意义。你怎么会有一个与行不同高度的单元格?那是行不通的
您只需在RowDefinition上为该单元格的行设置高度。首先您必须注意,将单元格高度设置为大于行,将导致单元格被截断 第二件事是,没有单元格,将网格想象成一个二维数组-您可以只设置内容-如果内容溢出,有两种可能的方式-单元格的内容将被切断或行高将根据行中最高的内容增加-列也是如此 如果您能提供一个图形示例,说明您在表格中填写的内容,以及为什么单元格的高度会增加,我们可能会帮助您找到合适的解决方案
但是现在,你走错了方向……你试过什么?你能发布一些关于如何生成网格的代码吗?@tencntraze我已经生成了网格,如下面的示例所示。在问题中添加了代码。不要在过程代码中创建或操作UI元素。这就是XAML的用途。使用
ItemsControl
@HighCore我需要根据用户输入动态创建行和列。我应该在哪里写上面的代码?在ViewModel或代码文件中?我使用的是棱镜结构。@HighCore顺便说一句,它是一个50行20列的大网格