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. POJ-1861 Network---最小生成树

    题目链接: https://vjudge.net/problem/POJ-1861 题目大意: 有一些公司,公司之间需要连接起来.给出了哪些公司可以连接以及连接边的长度.求最小生成树中最大的边,以及最 ...

  2. issubclass判断前面是不是后面的子类

    issubclass(sub,sup) 判断前面是不是后面的子类

  3. JS面向对象使用面向对象进行开发

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

  4. 1024MySQL事物提交机制

    转自 http://www.cnblogs.com/exceptioneye/p/5451960.html MySQL作为一种关系型数据库,已被广泛应用到互联网中的诸多项目中.今天我们来讨论下事务的提 ...

  5. C#生成MD5码

    /// <summary> /// 获取文件的MD5码 /// </summary> /// <param name="fileName">传入 ...

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

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

  7. 解决将/etc/passwd文件中1000改为0后只能guest进入系统的问题

    一, 进入正题之前我先在这里介绍一下vi编辑器的几条主要的编辑命令,以为一会会用的到的.(悔不改当初没好好学unix啊啊啊) 最重要的一点是要知道vi编辑器分为编辑模式和命令模式,按esc键就能从编辑 ...

  8. [LeetCode] Basic Calculator III 基本计算器之三

    Implement a basic calculator to evaluate a simple expression string. The expression string may conta ...

  9. Shell的基本命令(第一天),根据w3c学习得

    Shell是一种应用程序,提供一个界面访问操作系统内核的服务. 1:编写shell脚本 vi test.sh #!/bin/bash #指定这个脚本需要什么解释器来执行 echo "Hell ...

  10. 从零开始搭建口袋妖怪管理系统(1)-从Angular1.x开始

    开坑,一直喜欢口袋妖怪,想着能写点有关的程序. 最近项目要改写管理系统,所以用Angular1.x搭建一个口袋妖怪管理系统试试. 巩固Ng1.x的知识+学习库的用法,然后算是记录一个系统从零开始到成型 ...