NavBarControl控件:主要作用是制作包含多个选项组并且每个组里包含多个子选项的导航栏;

位于 工具箱 -> Navigation & Layout(导航栏与布局类控件) 目录下;

在工具箱输入名称NavBarControl检索,然后直接拖拽到面板上便可使用,最好是放在一个子容器里(比如PanelControl);

NavBarControl控件常用属性描述:(选中NavBarControl控件实例,打开属性窗口)

蓝色为常用属性     红色为未知属性、几乎不会用到或很少用到的属性、其他托管属性、暂时不需要我们去处理的属性

BarManager  
        MenuManager (BarManager)菜单管理
布局  
        Anchor (enum)控件锚点
通用属性,设置Top、Bottom、Right、Left四个位置以使
控件在指定方位跟随父容器变换而变换
        Dock (enum)控件在父容器中停靠方式
通用属性,五个可选值设置使控件停靠在父容器的上下左
右四个方位或充满整个父容器
        Location(X,Y) (int)控件的位置
通用属性,上方Dock属性为None时生效
        Size(W,H) (int)控件的长宽
通用属性,上方Dock属性为None时生效
行为  
        AllowDrop (bool)是否接收用户拖到控件上的数据
        Enabled (bool)控件是否激活
        LinkSelectionMode (enum)指定当前选中的项目是否保持选中
        TabIndex (int)tab键切换焦点的索引
        TabStop (bool)是否禁用tab键切换焦点
Visible (bool)控件是否可见
数据  
Groups (NavGroupCollection)当前导航栏的所有分组
Items (NavItemCollection)当前导航栏的所有选项
外观  
ActiveGroup                                                           (NavBarGroup)当前展开的分组,PaintStyle不为
ExplorerBar(也就是同时只能有一个分组展开)时生效
Appearance (NavBarAppearances)整个控件的外观属性设置,应用
于控件中的所有部件
HotTrackedGroupCursor (enum)鼠标停在分组上的显示样式
HotTrackedItemCursor (enum)鼠标停在选项上的显示样式
LargeImages (ImageList)大图标集合,可供控件下的其他部件在其中
选择自己的大图标
LinkInterval (int)行间距
LookAndFeel 控件使用的皮肤
        NavigationPaneGroupClientHeight (int)导航面板组的高度,决定下方的分组栏目是否缩进
        NavigationPaneMaxVisibleGroups (int)导航面板最大可见分组
        NavigationPaneOverflowPaneUse
        SmallImages
(bool)导航窗格被缩进的分组是否使用小图标
    OptionsNavPane(导航窗格的选项设置)  
        AllowOptionsMenuItem (bool)菜单项是否允许选择
        AnimationFramesCount (int)导航栏缩进动画的帧数
        CollapsedNavpaneContentControl (Control)整个导航栏缩进时显示的控件
        CollapsedWidth (int)导航栏缩进时保持的宽度
        ExpandButtonMode (enum)导航栏缩进的方向,比如靠左还是靠右
ExpandedWidth (int)导航栏展开时的宽度
        GroupImageShowMode (enum)导航栏的分组在什么情况下才显示图标
        MaxPopupFormWidth (int)导航栏缩进时,点击选项弹出的窗口最大值
        NavPaneState (enum)当前导航栏的状态,是展开还是缩进
ShowExpandButton (bool)是否显示导航栏缩进按钮
        ShowGroupImageInHeader (bool)是否显示当前已展开分组的图标
        ShowHeaderText (bool)是否显示当前已展开分组的名称
ShowOverflowButton (bool)是否显示导航栏中分组的缩进按钮
ShowOverflowPanel (bool)是否显示导航栏中分组的缩进平面
        ShowSplitter (bool)是否显示分割线
   
PaintStyleKind (enum)导航栏的模式,比如同时只允许展开一个分组
或者可以多个分组一起展开
PaintStyleName (enum)导航栏的样式
RightToLeft (enum)导航栏是否是从右到左对齐
SkinExplorerBarViewScrollStyle (enum)PaintStyleKind为ExplorerBar模式时,内容超出
时的进度条显示模式
SmallImages (ImageList)控件的小图标集合,对应当前项目中的任一
图片集
Text (string)控件的显示内容
UseWaitCursor (bool)鼠标经过此控件时是否切换为等待状态光标
   

一、新建一个导航栏

拖入一个panel到窗口上做为导航栏的容器,然后再拖入一个NavBarControl到其上,点击NavBarControl控件的右上角三角箭头展开任务列表,选择PaintStyle模式为Navigationpane,也就是同时最大展开的分组数目为1。

二、手动为导航栏添加数据

点击控件右上角三角箭头展开任务列表,选择Run Designer打开设计界面。

设计界面的Main -> Groups/Items/Links为导航栏的分组及子项目编辑界面,我们进入此界面,在右侧的NavBar Groups窗口内点击鼠标焦点至此窗口时,上方的添加按钮可以添加新的分组,在右侧的NavBar Items窗口内点击鼠标焦点至此窗口时,上方的添加按钮可以添加新的子项目,选中每个分组或子项目可以在右侧的属性窗口快捷设置他的常用属性,添加好了多个分组和子项目时,需要将子项目指定到某一分组内,直接用鼠标拖动NavBar Items中的子项目到NavBar Groups中的该分组下。

我们创建好了多个分组和子项目后,直接点击运行,查看此时的效果。

三、捕获导航栏的基本事件

捕获导航栏子项目的鼠标点击事件LinkClicked:

public Form1()
{
InitializeComponent(); OtherInit();
}
/// <summary>
/// 其他的初始化处理
/// </summary>
private void OtherInit()
{
navBarItem1.LinkClicked += Item_Click;
navBarItem2.LinkClicked += Item_Click;
navBarItem3.LinkClicked += Item_Click;
navBarItem4.LinkClicked += Item_Click;
navBarItem5.LinkClicked += Item_Click;
navBarItem6.LinkClicked += Item_Click;
navBarItem7.LinkClicked += Item_Click;
navBarItem8.LinkClicked += Item_Click;
navBarItem9.LinkClicked += Item_Click;
}
/// <summary>
/// 导航栏子项目的点击事件
/// </summary>
private void Item_Click(object sender, NavBarLinkEventArgs e)
{
MessageBox.Show("点击了子项目:" + e.Link.Caption);
}

四、动态更改导航栏数据

只需要根据数据动态的创建分组和子项目,并将子项目添加到分组之下:

NavBarGroup nbGroup1 = new NavBarGroup();
nbGroup1.Name = "nbGroup1";
nbGroup1.Caption = "动态添加的分组";
nbGroup1.SmallImageIndex = -1;
nbGroup1.LargeImageIndex = -1;
//添加到导航栏所有分组集合
navBarControl1.Groups.Add(nbGroup1); NavBarItem nbItem1 = new NavBarItem();
nbItem1.Name = "nbItem1";
nbItem1.Caption = "动态添加的子项目";
nbItem1.SmallImageIndex = -1;
nbItem1.LargeImageIndex = -1;
nbItem1.LinkClicked += Item_Click;
//添加到导航栏所有子项目集合
navBarControl1.Items.Add(nbItem1); //添加子项目至某一分组
nbGroup1.ItemLinks.AddRange(new NavBarItemLink[] {
new NavBarItemLink(nbItem1)
});

Winform DevExpress控件库(三) 使用NavBarControl控件定制导航栏的更多相关文章

  1. sencha touch 自定义cardpanel控件 模仿改进NavigationView 灵活添加按钮组,导航栏,自由隐藏返回按钮(废弃 仅参考)

    最新版本我将会放在:http://www.cnblogs.com/mlzs/p/3382229.html这里的示例里面,这里不会再做更新 代码: /* *模仿且改进NavigationView *返回 ...

  2. [Xcode 实际操作]三、视图控制器-(6)UINavigationController导航栏样式

    目录:[Swift]Xcode实际操作 本文将演示对导航栏进行样式设置,以及更改导航顶部的提示区. 选择编辑第一个视图控制器文件. import UIKit class FirstSubViewCon ...

  3. 《Dotnet9》系列-开源C# Winform控件库1《HZHControls》强力推荐

    大家好,我是Dotnet9小编,一个从事dotnet开发8年+的程序员.我最近在写dotnet分享文章,希望能让更多人看到dotnet的发展,了解更多dotnet技术,帮助dotnet程序员应用dot ...

  4. DevExpress控件库 开发使用经验总结1 DevExpress简介、安装、使用

    2015-01-24 最近公司开发的WinForm客户端图书行业ERP管理系统,界面端采用了DevExpress控件库.界面效果非常绚丽,类似于Office2007.2010的界面风格. 其中的控件功 ...

  5. [深入浅出Windows 10]QuickCharts图表控件库解析

    13.4 QuickCharts图表控件库解析     QuickCharts图表控件是Amcharts公司提供的一个开源的图表控件库,这个控件库支持WPF.Silverlight.和Windows等 ...

  6. WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件

    在 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 一文中,我们说到了在 WPF 中引入简单的 UWP 控件以及相关的注意事项 ...

  7. WPF控件库总结

    前言 在使用WPF项目的时候, 一般首要的就是对UI部分的选型, 而WPF相关的UI控件和样式库在Githu也是非常多. 关于UI的部分,可以分为二种: 对控件本身没有很大的需求, 只需要在原有的基础 ...

  8. DevExpress控件库 开发使用经验总结2 DevExpress汉化之WinForm开发模式汉化

    2015-01-24 DevExpress控件库默认安装后,使用的本地资源为英文.Developer Express .NET产品都有本地化资源,比如按钮属性,控件属性描述,菜单项,确认和错误的信息等 ...

  9. Winform DevExpress控件库(一) DevExpress控件库的安装与新建第一个DevExpress项目

    前言:因为这段时间要接触到DevExpress控件库,而我本身甚至对winform的控件都了解甚少,所以处在学习中,写下博客主要是为了方便后期的回顾,当然也可以给一些新人第一次接触时做为学习的参考,以 ...

随机推荐

  1. sys.exc_info()可以捕获到任意异常

    import sys try: a = 3 assert a > 4 except: exc = sys.exc_info()#返回异常的元祖 print (exc)

  2. Python系列之 - multiprocessing

    由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程. multiprocessing包是Python中的多进程 ...

  3. Gold well平台罗琪:叙利亚战火令黄金看涨意愿强烈

    Gold well平台罗琪:叙利亚战火令黄金看涨意愿强烈基本面分析:纸黄金交易通网显示,全球最大黄金上市交易基金(ETF)截至04月14日黄金持仓量较上日持平,当前持仓量为865.89吨,本月止净增持 ...

  4. js高阶函数应用—函数防抖和节流

    高阶函数指的是至少满足下列两个条件之一的函数: 1. 函数可以作为参数被传递:2.函数可以作为返回值输出: javaScript中的函数显然具备高级函数的特征,这使得函数运用更灵活,作为学习js必定会 ...

  5. [Codeforces 297E]Mystic Carvings

    Description 题库链接 题面链接 Solution 这里给出主席树的版本.主席树维护直线的一个端点在前 \(i\) 个端点中,另一个端点在区间内的个数. Code //It is made ...

  6. [JLOI 2012]树

    Description 在这个问题中,给定一个值S和一棵树.在树的每个节点有一个正整数,问有多少条路径的节点总和达到S.路径中节点的深度必须是升序的.假设节点1是根节点,根的深度是0,它的儿子节点的深 ...

  7. UOJ #236. 【IOI2016】railroad

    Description Anna 在一个游乐园工作.她负责建造一个新的过山车铁路.她已经设计了影响过山车速度的 nn 个特殊的路段(方便起见标记为 00 到 n−1n−1).现在 Anna 必须要把这 ...

  8. [BSGS算法]纯水斐波那契数列

    学弟在OJ上加了道"非水斐波那契数列",求斐波那契第n项对1,000,000,007取模的值,n<=10^15,随便水过后我决定加一道升级版,说是升级版,其实也没什么变化,只 ...

  9. P1837 单人纸牌_NOI导刊2011提高(04)

    题目描述 单人纸牌游戏,共36张牌分成9叠,每叠4张牌面向上.每次,游戏者可以从某两个不同的牌堆最顶上取出两张牌面相同的牌(如黑桃10和梅花10)并且一起拿走.如果最后所有纸牌都被取走,则游戏者就赢了 ...

  10. [BZOJ]1069 最大土地面积(SCOI2007)

    计算几何经典题,贴板子. Description 在某块平面土地上有N个点,你可以选择其中的任意四个点,将这片土地围起来,当然,你希望这四个点围成的多边形面积最大. Input 第1行一个正整数N,接 ...