在c#winform中如何做出导航菜单,其效果如下图:
6个回答
展开全部
自己画,再拖个timer,让他做出动画效果,无非4个按钮一个panle,pictureBox+lable。
你也可以不做成控件,直接窗体上画,简单得另人发指,拖一个Panle,N个按钮,N个子Panle,单击按钮,其他按钮名称写成变量,或者直接画按钮:
也可以直观理解为,先放好最下面一个按钮,上面的相隔按钮高度跌加
button10.Top = 最底下一个按钮高度;
button9.Top = button10.Top - button9.Height;
... //紧挨着排列按钮
子panle在按钮事件中触发显示、隐藏。当点按钮的时候显示为他设计的panle,定位在他正下方,容纳在空白区域,可以理解为:
panle1.visible=true; //显示子菜单
panle2.visible=false;
...
panle1.top=button1.top+button1.height; //高度为button1之下
panle1.width=button1.width; //宽度和button1齐平
panle1.left=button1.left; //左边距跟button1对齐
panle1.height=button2.top-button1.top //高度在button1和下一个按钮button2之间
这种说法理解吗?,再逼近一点我们的做法,把按钮、Panle方法写成类:
private void ReSize<T>(string name, int H, int W, int L, int TO) where T : Control
{
T bu = (T)Controls[n];
bu.Top = TO * this.Height / kuan;
bu.Left = L * this.Width / chang;
bu.Width = W * this.Width / chang;
bu.Height = H * this.Height / kuan; //按照软件长宽比例缩放
}
private void AddControl<T>(string name, int Height, int Width, int Left, int Top) where T : Control
{
T bu = (T)Controls[name];
bu.Top = Top
bu.Left = Left;
bu.Width = Width;
bu.Height = Height; //调整属性
}
上面是两个方法,一个是调整分辨率,一个是把控件作为变量处理,你会了吗?
展开全部
你可以看看 easy_ui的导航就和这个差不多
追问
不知道耶,能详细点么
追答
你说的是winform 我以为你说asp。这个用wpf可能能做,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自己用图片加一些位置计算的算法,处理一些事件,还是可以做出来的
追问
我也知道要加位置计算法,那该如何做呢?能够详细点么。。。
追答
最近工作很忙,都没有登录上来看,你这个效果做出来了没
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是第三方控件!C#的不带!
追问
我知道啊,效果快出来了,只是没有这个好看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Dev GridControl貌似可以实现这种 估计要重写一点东西;这个东西有时间才能试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询