垂直导航栏?

时间:2014-09-04 02:02:23

标签: c#

对不起这个问题,但我一直在谷歌搜索“C#垂直菜单栏”一段时间,我找不到一个看起来像这样的东西: enter image description here

不,我没有制作一个调查柜,但这是我能找到的唯一一个我想要的图像。

有人能告诉我怎么做吗?

2 个答案:

答案 0 :(得分:2)

您可以创建从Tab控件继承的自定义用户控件。

对于Windows窗体,请按照以下步骤操作:

  1. 右键单击项目 - >添加新项目 - >用户控制(C#)
  2. 从TabControl继承并在Default Constructor中写下面的代码 3覆盖OnPaint方法以手动设计选项卡控件
  3. 保存
  4. 从工具箱中将其添加到您的表单。
  5. 将Dock属性设置为填充和对齐属性为控制左侧
  6. 添加更多标签
  7. 希望这有帮助!

        class CustomControl : TabControl
        {
             public CustomControl()
             {
              SetStyle(ControlStyles.AllPaintingInWmPaint  , true);
              SetStyle(ControlStyles.OptimizedDoubleBuffer , true);
              SetStyle(ControlStyles.ResizeRedraw, true);
              SetStyle(ControlStyles.UserPaint, true);
    
              DoubleBuffered = true;
              SizeMode = TabSizeMode.Fixed;
              ItemSize = new System.Drawing.Size(30, 120);
    
             }
    
    
            protected override void OnPaint(PaintEventArgs e)
            {
             var B = new Bitmap(Width, Height);
             var G = (Graphics)Graphics.FromImage(B);
             G.Clear(Color.Gainsboro);
    
              for (int i = 0; i < TabCount -1; i++)
              {
                var TabRectangle = (Rectangle)GetTabRect(i);
    
                if (i == SelectedIndex)
                {
                    G.FillRectangle(Brushes.Navy, TabRectangle);
                }
                else
                {
    
                    G.FillRectangle(Brushes.BlueViolet, TabRectangle);
    
    
                }
                G.DrawString(TabPages[i].Text, Font, Brushes.White, TabRectangle, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center });
                TabPages[i].Font = new Font(TabPages[i].Font, FontStyle.Strikeout);
    
            }
    
            e.Graphics.DrawImage((Image)B.Clone(),0,0);
            G.Dispose();
            B.Dispose();
    
            base.OnPaint(e);
    
           }
    

    enter image description here

    enter image description here

    快乐的编码!

答案 1 :(得分:0)

假设WPF,只需要一个高于其宽度的菜单并添加菜单项