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