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. JS面向对象使用面向对象进行开发

      面向对象基础一之初体验使用面向对象进行开发 对 JS 中的面向对象的基础进行讲述, 初体验使用面向对象进行开发 主要内容是 面向对象的概念及特性 用面向对象的方式解决简单的标签创建实例 一些基础的 ...

  2. Java知识体系纲要

    最近一段时间,把Java主要涉及到的大概念都大致学习了一遍,为了让自己能够更好地形成对Java知识体系的整体把握,先把学过的知识点添加到自己画的思维导图上. 整个Java知识体系的划分,我自己主要将它 ...

  3. Python进阶_mysql(1)

    什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 进入mysql (linux ...

  4. elasticsearch logstash jdbc 配置 增量更新

    环境前提: centos 6.5 x64 jdk 1.8 elasticsearch 6.1.4 logstash 6.1.4 kibana 6.1.4 mysql 5.x 保证上面软件已经安装,并且 ...

  5. ●CodeForces 698C LRU

    题链: http://codeforces.com/problemset/problem/698/C题解.1: 概率dp,状压dp 棒棒哒题解:https://www.cnblogs.com/liu- ...

  6. [BZOJ]3532: [Sdoi2014]Lis

    Time Limit: 10 Sec  Memory Limit: 512 MB Description 给定序列A,序列中的每一项Ai有删除代价Bi和附加属性Ci.请删除若干项,使得4的最长上升子序 ...

  7. bzoj 2594: [Wc2006]水管局长数据加强版

    Description SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一 ...

  8. hdu 1130 How Many Trees?(Catalan数)

    How Many Trees? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. bzoj1913[Apio2010]signaling 信号覆盖 计算几何

    1913: [Apio2010]signaling 信号覆盖 Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 1583  Solved: 646[Subm ...

  10. Postgres中postmaster代码解析(中)

    今天我们对postmaster的以下细节进行讨论: backend的启动和client的连接请求的认证 客户端取消查询时的处理 接受pg_ctl的shutdown请求进行shutdown处理 2.与前 ...