c#data role navbar控件

是用于简化应用程序并为最终用户提供导航功能的程序设计。由于XtraNavBar控件具有高度的灵活性和可视化操作,你只需进行简单的属性设置,就能够选择你所需的样式而无需编写任何代码就能实现该功能。然而,最近老有朋友询问ASPxNavBar控件如何保证一开始折叠所有Group,同时保证点击时展开当前Group,其它Group自动折叠。开始以为只设置AutoCollapse属性就可以,实际上这个属性设为True后,无论如何设置或者写代码,一开始都无法折叠所有Group,所以不能设置这个属性。此路不通彼路通,既然不能通过设置属性来实现,那就写写代码吧!&以下是实现的代码:
s脚本部分:
view plaincopy to clipboardprint?
&script type="text/javascript"&&!--
function ASPxNavBar_Init(s, e) {
s.CollapseAll();
function ASPxNavBar_ExpandedChanged(s, e) {
if (e.group.GetExpanded() == true) {
for (var i = 0; i & s.GetGroupCount(); i++) {
if (i == e.group.index) continue;
s.GetGroup(i).SetExpanded(false);
// --&&/script&
&script type="text/javascript"&&!--
function ASPxNavBar_Init(s, e) {
s.CollapseAll();
function ASPxNavBar_ExpandedChanged(s, e) {
if (e.group.GetExpanded() == true) {
for (var i = 0; i & s.GetGroupCount(); i++) {
if (i == e.group.index) continue;
s.GetGroup(i).SetExpanded(false);
// --&&/script&
控件标记部分:
view&plaincopy&to&clipboardprint?&dxnb:ASPxNavBar&ID="ASPxNavBar"&runat="server"&&&ClientSideEvents&Init="function(s,&e)&{&&ASPxNavBar_Init(s,&e)&&&xpandedChanged="function(s,&e)&{&&ASPxNavBar_ExpandedChanged(s,&e);&&&&&&/dxnb:ASPxNavBar&&&dxnb:ASPxNavBar&ID="ASPxNavBar"&runat="server"&&ClientSideEvents&Init="function(s,&e)&{ASPxNavBar_Init(s,&e)}"&ExpandedChanged="function(s,&e)&{ASPxNavBar_ExpandedChanged(s,&e);}"&/&&/dxnb:ASPxNavBar&
慧都控件网原创 转载请注明:本文来自&
Views(...) Comments() &动态添加NavBarControl控件
public struct NarBarAttribute
public int
&&&&&&&&&&&&&
//NavBarGroup的高度
public UserControl userC
//NavBarGroupControlContainer添加的控件
public bool
isV&&&&&&&&&&
//NavBarGroup是否可见
public string
groupN&&&&&&&
//NavBarGroup的Caption属性
List m_NarBarAttribute = new List();
public void InitLayoutState(List m_NarBarAttribute)
&&&&&&&&&&&
NavBarControl navBarControl1 = new NavBarControl();
&&&&&&&&&&&
navBarControl1.ContentButtonHint =
&&&&&&&&&&&
Location = new System.Drawing.Point(31, 31);
&&&&&&&&&&&
Name = "navBarControl1";
&&&&&&&&&&&
navBarControl1.OptionsNavPane.ExpandedWidth = 330;
&&&&&&&&&&&
navBarControl1.Size = new System.Drawing.Size(330, 800);
&&&&&&&&&&&
navBarControl1.TabIndex = 0;
&&&&&&&&&&&
navBarControl1.Text = "navBarControl1";
&&&&&&&&&&&
navBarControl1.PaintStyleName = "Skin:iMaginary";
&&&&&&&&&&&
navBarControl1.ActiveGroupChanged += new
NavBarGroupEventHandler(navBarControl1_ActiveGroupChanged);
&&&&&&&&&&&
for (int i = 0; i & m_NarBarAttribute.C i++)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
NavBarGroup navBarGroup1 = new NavBarGroup();
&&&&&&&&&&&&&&&
navBarGroup1.Caption = m_NarBarAttribute[i].groupN
&&&&&&&&&&&&&&&
navBarGroup1.GroupStyle = NavBarGroupStyle.ControlC
&&&&&&&&&&&&&&&
navBarGroup1.Expanded =
&&&&&&&&&&&&&&&
navBarGroup1.GroupClientHeight = m_NarBarAttribute[i].
&&&&&&&&&&&&&&&
navBarGroup1.GroupStyle =
DevExpress.XtraNavBar.NavBarGroupStyle.ControlC
&&&&&&&&&&&&&&&
navBarGroup1.Name = "navBarGroup" + i.ToString();
&&&&&&&&&&&&&&&
navBarGroup1.Visible = m_NarBarAttribute[i].isV
&&&&&&&&&&&&&&&
navBarControl1.Groups.Add(navBarGroup1);
&&&&&&&&&&&&&&&
navBarControl1.ActiveGroup = navBarGroup1;
&&&&&&&&&&&
&&&&&&&&&&&
this.Controls.Add(navBarControl1);
private void navBarControl1_ActiveGroupChanged(object sender,
NavBarGroupEventArgs e)
&&&&&&&&&&&
List groupName = new List();
&&&&&&&&&&&
for (int i = 0; i & m_NarBarAttribute.C i++)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
groupName.Add(m_NarBarAttribute[i].groupName);
&&&&&&&&&&&
&&&&&&&&&&&
NavBarGroupControlContainer navBarGroupControlContainer1 = new
NavBarGroupControlContainer();
&&&&&&&&&&&
NavBarGroup navBarGroup1 =
((NavBarControl)sender).ActiveG
&&&&&&&&&&&
int index = groupName.IndexOf(navBarGroup1.Caption);
&&&&&&&&&&&
m_NarBarAttribute[index].userControl.Dock =
System.Windows.Forms.DockStyle.F
&&&&&&&&&&&
m_NarBarAttribute[index].userControl.Location = new
System.Drawing.Point(0, 0);
&&&&&&&&&&&
m_NarBarAttribute[index].userControl.Name = "userControl" +
index.ToString();
&&&&&&&&&&&
m_NarBarAttribute[index].userControl.Size = new
System.Drawing.Size(242, 78);
&&&&&&&&&&&
navBarGroupControlContainer1.Name = "navBarGroupControlContainer" +
index.ToString();
&&&&&&&&&&&
navBarGroupControlContainer1.Size = new System.Drawing.Size(242,
&&&&&&&&&&&
navBarGroupControlContainer1.TabIndex = 0;
&&&&&&&&&&&
navBarGroupControlContainer1.Controls.Add(m_NarBarAttribute[index].userControl);
&&&&&&&&&&&
e.Group.ControlContainer = navBarGroupControlContainer1;
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。C# 怎么实现XP风格浮动工具条和苹果风格按钮控件 - .NET组件控件当前位置:& &&&C# 怎么实现XP风格浮动工具条和苹果风格按钮控件C# 怎么实现XP风格浮动工具条和苹果风格按钮控件&&网友分享于:&&浏览:75次C# 如何实现XP风格浮动工具条和苹果风格按钮控件为了减少空间,需要上述控件。就是点一下就展开,再点一下就缩小。------最佳解决方案--------------------ComponentOne&Studio&for&WinFroms&控件包中的&TopicBar&控件可以满足你的需求,此外还提供了NavBar&和&OutBar等布局导航控件。
你可以到【葡萄城控件官网&.cn】查看详细介绍以及本下载最新版本,地址:.cn/products/c1_winforms_overview.htm
ComponentOne&Studio&for&WinForms&产品演示Demo,地址:.cn/downloads/demo/C1WinFormControlExplorer.zip------其他解决方案--------------------谢谢提供帮助
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有9898人阅读
先上张效果图,依次为 全展开图,部分折叠图,全部折叠图
时间仓促,功能相对简单,也未经过详细测试,不支持设计期操作,这里提供思路给大家,有时间完善吧,上代码:
代码文件介绍
NavBar.cs & & & & & & & & &导航栏主体,继承自 Panel
NavGroup.cs & & & & & &NavBar中的分组,即(控制面板,我的电脑等),继承自Control
NavBarItem.cs & & & & 分组中的小项(即区域选项,字体等),继承自Control
NavBarButton.cs & & 导航栏主体右边的圆形按钮
NavGroupCollection.cs & & &分组的集合
NavBarItemCollection.cs &&分组中小项的集合
NavGroupState.cs & 组的状态,收缩还是展开
using System.Collections.G
using System.Drawing.D
ponentModel.D
using System.D
using System.D
using System.L
using System.T
using System.Windows.F
namespace WindowsApplication1
public partial class NavBar : Panel
private NavGroupCollection _
public NavGroupCollection Groups
get { return this._ }
public NavGroup this[int index]
if (index & -1)
return this._groups[index];
private int _selectedIndex = -1;
/// &summary&
/// 选择组的索引
/// &/summary&
[DefaultValue(-1)]
public int SelectedIndex
get { return this._selectedI }
this._selectedIndex =
this.SelectGroup(value);
private int _groupSpace = 20;
/// &summary&
/// Group间距
/// &/summary&
public int GroupSpace
get { return this._groupS }
set { this._groupSpace = }
private int _groupMargin = 5;
/// &summary&
/// Group边距
/// &/summary&
public int GroupMargin
get { return this._groupM }
set { this._groupMargin = }
private ImageList _smallImageL
/// &summary&
/// 设置图像列表
/// &/summary&
public ImageList SmallImageList
get { return this._smallImageL }
set { this._smallImageList = }
public NavBar()
InitializeComponent();
this.BackColor = Color.FromArgb(112, 140, 225);
this._groups = new NavGroupCollection(this);
this.AutoScroll =
/// &summary&
/// 根据添加的项,布局
/// &/summary&
/// &param name=&item&&&/param&
public void SetLayOut(NavGroup item)
this.SuspendLayout();
this.Controls.Add(item);
if (this._groups.Count == 0)
item.Top = 10;
item.Top = this[this._groups.Count - 1].Bottom + this.GroupS
item.Width = this.Width - 2 * this.GroupM
item.Left = (this.Width - item.Width) / 2;
item.Height = item.TitleH
this.ResumeLayout();
//item.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.R
/// &summary&
/// 重新布局组件
/// &/summary&
public void SetLayOut()
for (int i = 0; i & this._groups.C i++)
if (i == 0)
this._groups[i].Top = 10;
this._groups[i].Top = this._groups[i - 1].Bottom + this._groupS
this._groups[i].GroupIndex =
/// &summary&
/// 添加分组
/// &/summary&
/// &returns&&/returns&
public NavGroup AddGroup()
this._groups.Add();
return this._groups[this._groups.Count - 1];
/// &summary&
/// 删除分组
/// &/summary&
/// &param name=&item&&&/param&
public void RemoveGroup(NavGroup item)
int i = item.GroupI
this._groups.Remove(item);
this.Controls.Remove(item);
this.SetLayOut();
/// &summary&
/// 删除指定索引的分组
/// &/summary&
/// &param name=&index&&&/param&
public void RemoveGroupAt(int index)
this.Controls.Remove(this._groups[index]);
this._groups.RemoveAt(index);
this.SetLayOut();
/// &summary&
/// 选中指定索引的分组
/// &/summary&
/// &param name=&index&&&/param&
private void SelectGroup(int index)
foreach (NavGroup g in this._groups)
if (g.GroupIndex == this._selectedIndex)
g.IsSelected =
protected override void OnPaint(PaintEventArgs e)
base.OnPaint(e);
NavGroup.cs
using System.Collections.G
using System.D
using System.D
using System.Drawing.Drawing2D;
using System.L
using System.T
using System.Windows.F
namespace WindowsApplication1
public partial class NavGroup : Control
private Rectangle _titleR
private NavBar _ownerB
private NavBarButton _
private NavBarItemCollection _
public NavBarItemCollection Items
get { return this._ }
set { this._items = }
public NavBarItem this[int index]
if (index & -1)
return this._items[index];
private NavGroupState _groupState = NavGroupState.
/// &summary&
/// 组的状态
/// &/summary&
public NavGroupState GroupState
get { return this._groupS }
this._groupState =
this.SetGroupState(value);
private int _groupI
/// &summary&
/// 组索引
/// &/summary&
public int GroupIndex
get { return this._groupI }
set { this._groupIndex = }
private int _titleHeight = 20;
/// &summary&
/// 标题高度
/// &/summary&
public int TitleHeight
get { return this._titleH }
this._titleHeight =
this.SetTitleRectangle();
private string _
/// &summary&
/// &/summary&
public string Title
get { return this._ }
set { this._title = }
private Color _titleStartColor = Color.W
/// &summary&
/// 标题渐变开始色
/// &/summary&
public Color TitleStartColor
get { return this._titleStartC }
this._titleStartColor =
private Color _titleEndColor = Color.FromArgb(199, 211, 247);
/// &summary&
/// 标题渐变结束色
/// &/summary&
public Color TitleEndColor
get { return this._titleEndC }
this._titleEndColor =
private int _itemSpace = 5;
/// &summary&
/// Item间距
/// &/summary&
public int ItempSpace
get { return this._itemS }
set { this._itemSpace = }
private int _itemMargin = 5;
/// &summary&
/// Item边距
/// &/summary&
public int ItemMargin
get { return this._itemM }
set { this._itemMargin = }
private bool _isSelected =
/// &summary&
/// 是否选中
/// &/summary&
public bool IsSelected
get { return this._isS }
this._isSelected =
this.Invalidate();
private ImageList _smallImageL
public ImageList SmallImageList
get { return this._smallImageL }
set { this._smallImageList = }
public NavGroup()
InitializeComponent();
this._title = &新建组&;
this.BackColor = Color.FromArgb(214,223,247);
SetTitleRectangle();
this._button = new NavBarButton(this);
this._button.Click += new EventHandler
delegate(object sender, EventArgs e)
if (this._groupState == NavGroupState.collapse)
this.GroupState = NavGroupState.
this.GroupState = NavGroupState.
this._items = new NavBarItemCollection(this);
public NavGroup(NavBar ownerbar):this()
this._ownerBar =
/// &summary&
/// 设置标题区域
/// &/summary&
private void SetTitleRectangle()
this._titleRectangle = new Rectangle(0, 0, this.Width, _titleHeight);
/// &summary&
/// 添加项目
/// &/summary&
/// &returns&&/returns&
public NavBarItem AddItem()
this._items.Add();
return this._items[this._items.Count - 1];
/// &summary&
/// 设置组状态
/// &/summary&
/// &param name=&value&&&/param&
private void SetGroupState(NavGroupState value)
if (value == NavGroupState.collapse)
this.Height = this._titleH
if (this._items.Count & 0)
this.Height = this._items[this._items.Count - 1].Bottom + this._itemS
this._ownerBar.SetLayOut();
/// &summary&
/// 根据新增项布局
/// &/summary&
/// &param name=&item&&&/param&
public void SetLayOut(NavBarItem item)
this.SuspendLayout();
this.Controls.Add(item);
if (this._items.Count == 0)
item.Top = this._titleHeight + 10;
item.Top = this[this._items.Count - 1].Bottom + this.ItempS
item.Width = this.Width - 2 * this.ItemM
item.Left = (this.Width - item.Width) / 2;
this.Height = item.Bottom + this.ItempS
this._ownerBar.SetLayOut();
this.ResumeLayout();
/// &summary&
/// 重新布局,这个需要完善
/// &/summary&
/// &param name=&index&&&/param&
public void SetLayOut(int index)
for (int i = index + 1; i & this._items.C i++)
this._items[i].Top = this._items[i-1].Bottom + this._itemS
protected override void OnClick(EventArgs e)
base.OnClick(e);
this.IsSelected =
this._ownerBar.SelectedIndex = this._groupI
protected override void OnMouseUp(MouseEventArgs e)
base.OnMouseUp(e);
if (this._button.ClientRectangle.Contains(e.Location))
this._button.DoClick();
this.Invalidate();
protected override void OnPaint(PaintEventArgs e)
base.OnPaint(e);
SizeF size = e.Graphics.MeasureString(this._title, this.Font);
Font titlefont = new Font(this.Font.FontFamily,this.Font.Size, this.Font.Style | FontStyle.Bold);
if (!this._isSelected)
LinearGradientBrush brush = new LinearGradientBrush(this._titleRectangle, this._titleStartColor, this._titleEndColor, 0f);
e.Graphics.FillRectangle(brush, this._titleRectangle);
e.Graphics.DrawString(this._title, titlefont, Brushes.Black, this._titleRectangle.X, this._titleRectangle.Top + (this._titleRectangle.Height - size.Height) / 2);
e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(35, 90, 200)), this._titleRectangle);
e.Graphics.DrawString(this._title, titlefont, Brushes.White, this._titleRectangle.X, this._titleRectangle.Top + (this._titleRectangle.Height - size.Height) / 2);
e.Graphics.DrawRectangle(Pens.White, new Rectangle(0, 0, this.Width - 1, this.Height - 1));
& & & & & & //绘制右侧原型按钮
this._button.Draw(e.Graphics);
protected override void OnResize(EventArgs e)
base.OnResize(e);
SetTitleRectangle();
this._button.SetClientRectangle(this._titleRectangle);
NavBarItem.cs,这里偷了个懒,该组件包含一个PictureBox和Label组件,PictureBox用来显示图标,Lable用来显示文字
using System.Collections.G
using System.D
using System.L
using System.T
using System.Windows.F
using System.D
namespace WindowsApplication1
public partial class NavBarItem : Control
/// &summary&
/// 供外部调用项的点击事件
/// &/summary&
[Browsable(false)]
public event EventHandler ItemC
private Rectangle _imageR
private PictureBox _
private Label _
private NavGroup _ownerG
/// &summary&
/// 所属组
/// &/summary&
public NavGroup OwnerGroup
get { return this._ownerG }
set { this._ownerGroup = }
private int _itemI
public int ItemIndex
get { return this._itemI }
set { this._itemIndex = }
private int _imageIndex = -1;
/// &summary&
/// 图标的索引
/// &/summary&
public int ImageIndex
get { return this._imageI }
if (this._ownerGroup.SmallImageList == null)
if (value &= this._ownerGroup.SmallImageList.Images.Count)
this._imageIndex =
this._picbox.Image = this._ownerGroup.SmallImageList.Images[this._imageIndex];
this.Invalidate();
private new string _
/// &summary&
/// 设置显示文字
/// &/summary&
public new string Text
get { return this._ }
this._text =
this._titlebox.Text =
this.Invalidate();
public NavBarItem()
InitializeComponent();
this.AutoSize =
this.Height = 22;
this.Cursor = Cursors.H
this._titlebox = new Label();
this._titlebox.Parent =
this._titlebox.Dock = DockStyle.F
this._titlebox.TextAlign = ContentAlignment.MiddleL
this._titlebox.MouseHover += new EventHandler(this.OnTitleMouseHover);
this._titlebox.MouseLeave += new EventHandler(this.OnTitleMouseLeave);
this._titlebox.Click += new EventHandler(this.OnTitleClick);
this._picbox = new PictureBox();
this._picbox.Parent =
this._picbox.Dock = DockStyle.L
this._picbox.Width = this.H
this._picbox.SizeMode = PictureBoxSizeMode.CenterI
this.Text = &新建项目&;
public NavBarItem(NavGroup ownergroup)
this._ownerGroup =
private void OnTitleClick(object sender, EventArgs e)
base.OnClick(e);
if (this.ItemClick != null)
this.ItemClick(this, new EventArgs());
private void OnTitleMouseHover(object sender,EventArgs e)
Control c = (Control)
c.ForeColor = Color.B
c.Font = new Font(c.Font.FontFamily, c.Font.Size, c.Font.Style | FontStyle.Underline);
private void OnTitleMouseLeave(object sender, EventArgs e)
Control c = (Control)
c.ForeColor = SystemColors.ControlT
c.Font = new Font(c.Font.FontFamily, c.Font.Size, FontStyle.Regular);
NavBarButton.cs
using System.Collections.G
using System.L
using System.T
using System.D
using System.Drawing.Drawing2D;
namespace WindowsApplication1
public class NavBarButton
private NavGroup _
private Rectangle _clientR
public Rectangle ClientRectangle
get { return this._clientR }
set { this._clientRectangle = }
public NavBarButton() { }
public NavBarButton(NavGroup navgroup)
this._navgroup =
public event EventHandler C
public void SetClientRectangle(Rectangle parentRect)
int w = parentRect.H
this._clientRectangle = new Rectangle(parentRect.Width - w + i, parentRect.Top + i, w - 2 * i, w - 2 * i);
public void Draw(Graphics g)
g.SmoothingMode = SmoothingMode.AntiA
g.FillEllipse(Brushes.White, this._clientRectangle);
g.DrawEllipse(Pens.Gray, this._clientRectangle);
Point centerpoint = new Point(this._clientRectangle.X + this._clientRectangle.Width / 2, this._clientRectangle.Y + this._clientRectangle.Height / 2);
int w = this._clientRectangle.Width / 4;
Pen pen = new Pen(Color.Black, 1.6f);
if (this._navgroup.GroupState == NavGroupState.collapse)
g.DrawLine(pen, centerpoint.X, centerpoint.Y, centerpoint.X - w, centerpoint.Y - w);
g.DrawLine(pen, centerpoint.X, centerpoint.Y, centerpoint.X + w, centerpoint.Y - w);
g.DrawLine(pen, centerpoint.X, centerpoint.Y + 4, centerpoint.X - w, centerpoint.Y + w - 4);
g.DrawLine(pen, centerpoint.X, centerpoint.Y + 4, centerpoint.X + w, centerpoint.Y + w - 4);
g.DrawLine(pen, centerpoint.X, centerpoint.Y, centerpoint.X - w, centerpoint.Y + w);
g.DrawLine(pen, centerpoint.X, centerpoint.Y, centerpoint.X + w, centerpoint.Y + w);
g.DrawLine(pen, centerpoint.X, centerpoint.Y - 4, centerpoint.X - w, centerpoint.Y + w - 4);
g.DrawLine(pen, centerpoint.X, centerpoint.Y - 4, centerpoint.X + w, centerpoint.Y + w - 4);
public void DoClick()
if (this.Click != null)
this.Click(this, new EventArgs());
NavGroupCollection.cs
using System.Collections.G
using System.L
using System.T
namespace WindowsApplication1
public class NavGroupCollection :List&NavGroup&
private NavBar _ownerB
public NavGroupCollection(NavBar ownerBar):base()
this._ownerBar = ownerB
public new void Add(NavGroup item)
this._ownerBar.SetLayOut(item);
base.Add(item);
item.GroupIndex = this.Count - 1;
item.SmallImageList = this._ownerBar.SmallImageL
public new void Add()
NavGroup item = new NavGroup(this._ownerBar);
this.Add(item);
NavBarItemCollection.cs
using System.Collections.G
using System.L
using System.T
namespace WindowsApplication1
public class NavBarItemCollection : List&NavBarItem&
private NavGroup _ownerG
public NavBarItemCollection(NavGroup ownerGroup):base()
this._ownerGroup = ownerG
public new void Add(NavBarItem item)
this._ownerGroup.SetLayOut(item);
base.Add(item);
item.ItemIndex = this.Count - 1;
public new void Add()
NavBarItem item = new NavBarItem(this._ownerGroup);
this.Add(item);
NavGroupState.cs
namespace WindowsApplication1
public enum NavGroupState
使用,按钮点击时,写如下代码
navBar1.AddGroup().Title = &控制面板&;
item = navBar1[0].AddItem();
item.ImageIndex = 0;
item.Text = &区域选项&;
item = navBar1[0].AddItem();
item.ImageIndex = 1;
item.Text = &字体&;
item = navBar1[0].AddItem();
item.ImageIndex = 2;
item.Text = &添加硬件&;
navBar1.AddGroup().Title = &我的电脑&;
item = navBar1[1].AddItem();
item.ImageIndex = 3;
item.Text = &C 盘&;
navBar1.AddGroup().Title = &网上邻居&;
item = navBar1[2].AddItem();
item.ImageIndex = 4;
item.Text = &本地连接&;
item = navBar1[2].AddItem();
item.ImageIndex = 5;
item.Text = &VPN连接&;
navBar1.AddGroup().Title = &我的文档&;
item = navBar1[3].AddItem();
item.ImageIndex = 6;
item.Text = &文档 A&;
item = navBar1[3].AddItem();
item.ImageIndex = 7;
item.Text = &文档 B&;
item = navBar1[3].AddItem();
item.ImageIndex = 8;
item.Text = &文档 C&;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:330177次
积分:4020
积分:4020
排名:第5354名
原创:89篇
评论:236条
(1)(2)(13)(7)(3)(3)(2)(1)(2)(1)(2)(3)(5)(9)(1)(1)(1)(1)(1)(2)(3)(5)(7)(7)(1)(2)(1)(2)(1)(4)(1)}

我要回帖

更多关于 data role navbar 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信