我开始在WPF上开发应用程序,所以我对该项目完全陌生。不喜欢XAML,而是想以编程方式做所有事情,所以这是我有两行的问题,第一行是功能区按钮对于第二个,我想添加列,但仅添加第二行。
当我在第二行中添加列时,我也在第一行中获得列,我不想要那样。请采取行动,就像您没有注意到rowCount和Colummn count的硬编码int一样。
public static class GridCustomClass
{
static GridLength gridLength = new GridLength(0, GridUnitType.Auto);
static GridLength gridLengthColumns = new GridLength(0, GridUnitType.Auto);
static GridLength gridLengthColumnsStar = new GridLength(0, GridUnitType.Star);
public static void AddFirstGridRows(Grid grid)
{
int rowsCount = 2;
for (int rows = 0; rows < rowsCount; rows++)
{
RowDefinition rowDefinition = new RowDefinition();
rowDefinition.Height = gridLength;
grid.RowDefinitions.Add(rowDefinition);
}
}
public static Grid AddGridColumnsForLeftPane(Grid grid)
{
for (int i = 0; i <3; i++)
{
ColumnDefinition columnDefinition = new ColumnDefinition();
switch(i)
{
case 1:
columnDefinition.Width = gridLengthColumnsStar;
break;
default:
columnDefinition.Width = gridLengthColumns;
break;
}
columnDefinition.SetValue(Grid.RowProperty, 1);
grid.ColumnDefinitions.Add(columnDefinition);
}
return grid;
}
}
public partial class ApplicationSettings : Window
{
Grid myGrid = new Grid();
Ribbon ribbon;
RibbonTab ribbonTab;
RibbonGroup ribbonGroup;
public ApplicationSettings()
{
InitializeComponent();
GridCustomClass.AddFirstGridRows(myGrid);
GridCustomClass.AddGridColumnsForLeftPane(myGrid);
ribbon = new Ribbon();
//Grid.SetRow(GridCustomClass.AddGridColumnsForLeftPane(myGrid), 1);
Button btn = new Button();
btn.SetValue(Grid.ColumnProperty, 0);
btn.SetValue(Grid.RowProperty,1);
//Grid.SetRow(btn, 1);
Grid.SetRow(ribbon, 0);
myGrid.Children.Add(ribbon);
myGrid.Children.Add(btn);
settingsWindow.Content = myGrid;
}
}
[如果有人告诉我我哪里出问题了,我会很高兴。
一种选择是嵌套网格。声明仅包含一列和两行的第一个网格,然后在第0行中添加功能区。在第1行中添加第二个网格,并根据需要设置列数