private void UpdateRowColumnInfo()

in src/StructuredLogViewer/Controls/SplitterPanel.cs [107:180]


        private void UpdateRowColumnInfo()
        {
            Children.Clear();
            RowDefinitions.Clear();
            ColumnDefinitions.Clear();

            if (oldFirstSize == default(GridLength))
            {
                oldFirstSize = FirstChildRelativeSize;
            }

            if (oldSecondSize == default(GridLength))
            {
                oldSecondSize = SecondChildRelativeSize;
            }

            if (Orientation == Orientation.Horizontal)
            {
                ColumnDefinitions.Add(new ColumnDefinition() { Width = oldFirstSize });
                ColumnDefinitions.Add(new ColumnDefinition() { Width = separatorSize });
                ColumnDefinitions.Add(new ColumnDefinition() { Width = oldSecondSize });
                RowDefinitions.Add(new RowDefinition());
                SetRow(gridSplitter, 0);
                SetColumn(gridSplitter, 1);
                gridSplitter.ResizeDirection = GridResizeDirection.Columns;
                gridSplitter.Width = 5;
                gridSplitter.HorizontalAlignment = HorizontalAlignment.Stretch;
                gridSplitter.VerticalAlignment = VerticalAlignment.Stretch;
            }
            else
            {
                RowDefinitions.Add(new RowDefinition() { Height = oldFirstSize });
                RowDefinitions.Add(new RowDefinition() { Height = separatorSize });
                RowDefinitions.Add(new RowDefinition() { Height = oldSecondSize });
                ColumnDefinitions.Add(new ColumnDefinition());
                SetRow(gridSplitter, 1);
                SetColumn(gridSplitter, 0);
                gridSplitter.ResizeDirection = GridResizeDirection.Rows;
                gridSplitter.Height = 5;
                gridSplitter.HorizontalAlignment = HorizontalAlignment.Stretch;
                gridSplitter.VerticalAlignment = VerticalAlignment.Stretch;
            }

            if (FirstChild != null)
            {
                SetRow(FirstChild, 0);
                SetColumn(FirstChild, 0);
                SetRowSpan(FirstChild, 1);
                SetColumnSpan(FirstChild, 1);
                Children.Add(FirstChild);
            }

            Children.Add(gridSplitter);

            if (SecondChild != null)
            {
                if (Orientation == Orientation.Horizontal)
                {
                    SetRow(SecondChild, 0);
                    SetColumn(SecondChild, 2);
                }
                else
                {
                    SetRow(SecondChild, 2);
                    SetColumn(SecondChild, 0);
                }

                SetRowSpan(SecondChild, 1);
                SetColumnSpan(SecondChild, 1);
                Children.Add(SecondChild);
            }

            UpdateSplitterVisibility();
        }