public NavigationControl() {
            SuspendLayout();
            
            BorderStyle = BorderStyle.None;
            flowLayoutPanel = new FlowLayoutPanel();
            tabControl = new HeadlessTabControl();

            table = new TableLayoutPanel();
            table.RowCount = 1;
            table.ColumnCount = 2;
            table.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
            table.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, TopRightSpace));
            table.RowStyles.Add(new RowStyle(SizeType.AutoSize));
            table.Dock = DockStyle.Top;
            table.AutoSize = true;
            table.BackColor = Color.Transparent;
            table.AutoSizeMode = AutoSizeMode.GrowAndShrink;

            Controls.Add(table);

            var miniIconPanel = new FlowLayoutPanel()
            {
                FlowDirection = FlowDirection.RightToLeft,
                AutoSize = true,
                AutoSizeMode = AutoSizeMode.GrowAndShrink,
                Dock = DockStyle.Fill,
                BackColor = Color.Transparent,
            };
            table.Controls.Add(miniIconPanel, 1,0);

            
            
            flowLayoutPanel.AutoScroll = false;
            flowLayoutPanel.AutoSize = true;
            flowLayoutPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;
            flowLayoutPanel.BackColor = Color.Transparent;
            flowLayoutPanel.Dock = DockStyle.Top;
            flowLayoutPanel.Padding = new Padding(13);
            flowLayoutPanel.WrapContents = false;
    
            table.Controls.Add(flowLayoutPanel, 0, 0);
    
            Margin = new Padding(0);
            Name = "NavigationControl";
            Size = new Size(703, 219);

            isBusyTimer.Interval = 120; //timer tick to update "isBusyIcon" every 120 ms.
            isBusyTimer.Tick += (sender, args) => { Application.UseWaitCursor = CurrentNavigatable?.IsBusy == true; };
            isBusyTimer.Start();

            Instance = this;

            SetupTabButtons(flowLayoutPanel);
            CreateTopRightMiniIcons(miniIconPanel);
            PerformLayout();
            ResumeLayout(false);

            tabControl.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom;
            tabControl.Top = flowLayoutPanel.Bottom+10;
            tabControl.Left = 10;
            tabControl.Width = Width-20;
            tabControl.Height = Height - flowLayoutPanel.Height-20;

            Controls.Add(tabControl);

            InitializeTabPageContent();
        }
        public NavigationControl()
        {
            SuspendLayout();

            BorderStyle     = BorderStyle.None;
            flowLayoutPanel = new FlowLayoutPanel();
            tabControl      = new HeadlessTabControl();

            table             = new TableLayoutPanel();
            table.RowCount    = 1;
            table.ColumnCount = 2;
            table.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
            table.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, TopRightSpace));
            table.RowStyles.Add(new RowStyle(SizeType.AutoSize));
            table.Dock         = DockStyle.Top;
            table.AutoSize     = true;
            table.BackColor    = Color.Transparent;
            table.AutoSizeMode = AutoSizeMode.GrowAndShrink;

            Controls.Add(table);

            var miniIconPanel = new FlowLayoutPanel()
            {
                FlowDirection = FlowDirection.RightToLeft,
                AutoSize      = true,
                AutoSizeMode  = AutoSizeMode.GrowAndShrink,
                Dock          = DockStyle.Fill,
                BackColor     = Color.Transparent,
            };

            table.Controls.Add(miniIconPanel, 1, 0);



            flowLayoutPanel.AutoScroll   = false;
            flowLayoutPanel.AutoSize     = true;
            flowLayoutPanel.AutoSizeMode = AutoSizeMode.GrowAndShrink;
            flowLayoutPanel.BackColor    = Color.Transparent;
            flowLayoutPanel.Dock         = DockStyle.Top;
            flowLayoutPanel.Padding      = new Padding(13);
            flowLayoutPanel.WrapContents = false;

            table.Controls.Add(flowLayoutPanel, 0, 0);

            Margin = new Padding(0);
            Name   = "NavigationControl";
            Size   = new Size(703, 219);

            isBusyTimer.Interval = 120; //timer tick to update "isBusyIcon" every 120 ms.
            isBusyTimer.Tick    += (sender, args) => { Application.UseWaitCursor = CurrentNavigatable?.IsBusy == true; };
            isBusyTimer.Start();

            Instance = this;

            SetupTabButtons(flowLayoutPanel);
            CreateTopRightMiniIcons(miniIconPanel);
            PerformLayout();
            ResumeLayout(false);

            tabControl.Anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom;
            tabControl.Top    = flowLayoutPanel.Bottom + 10;
            tabControl.Left   = 10;
            tabControl.Width  = Width - 20;
            tabControl.Height = Height - flowLayoutPanel.Height - 20;

            Controls.Add(tabControl);

            InitializeTabPageContent();
        }