Как добавить столбцы сетки в заданную строку c в WPF. Net Core 3.1 программно? - PullRequest
0 голосов
/ 30 апреля 2020

Я начинаю разрабатывать приложение на WPF, так что я совершенно новичок в проекте. Не люблю XAML и хочу делать все программно, поэтому вот вопрос, который я получил в две строки, первая с Ribbon Кнопка и для второго я хочу добавить столбцы, но только для второго ряда.

Когда я добавляю столбцы во второй строке, я получаю столбцы и в первой строке, и я этого не хочу. Пожалуйста, действуйте так, как будто вы не заметили это жестко закодированное int для rowCount и Colummn count.

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;
        }
    }

Я буду очень рад, если кто-то покажет мне, где я go не прав.

1 Ответ

1 голос
/ 30 апреля 2020

Один из вариантов - вкладывать сетки. Объявите первую сетку только с одним столбцом и двумя строками, затем добавьте ленту в строке 0. Добавьте вторую сетку в строке 1 и задайте количество столбцов при использовании w sh

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...