Winform DevExpress控件库(三) 使用NavBarControl控件定制导航栏
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控件定制导航栏的更多相关文章
- sencha touch 自定义cardpanel控件 模仿改进NavigationView 灵活添加按钮组,导航栏,自由隐藏返回按钮(废弃 仅参考)
最新版本我将会放在:http://www.cnblogs.com/mlzs/p/3382229.html这里的示例里面,这里不会再做更新 代码: /* *模仿且改进NavigationView *返回 ...
- [Xcode 实际操作]三、视图控制器-(6)UINavigationController导航栏样式
目录:[Swift]Xcode实际操作 本文将演示对导航栏进行样式设置,以及更改导航顶部的提示区. 选择编辑第一个视图控制器文件. import UIKit class FirstSubViewCon ...
- 《Dotnet9》系列-开源C# Winform控件库1《HZHControls》强力推荐
大家好,我是Dotnet9小编,一个从事dotnet开发8年+的程序员.我最近在写dotnet分享文章,希望能让更多人看到dotnet的发展,了解更多dotnet技术,帮助dotnet程序员应用dot ...
- DevExpress控件库 开发使用经验总结1 DevExpress简介、安装、使用
2015-01-24 最近公司开发的WinForm客户端图书行业ERP管理系统,界面端采用了DevExpress控件库.界面效果非常绚丽,类似于Office2007.2010的界面风格. 其中的控件功 ...
- [深入浅出Windows 10]QuickCharts图表控件库解析
13.4 QuickCharts图表控件库解析 QuickCharts图表控件是Amcharts公司提供的一个开源的图表控件库,这个控件库支持WPF.Silverlight.和Windows等 ...
- WindowsXamlHost:在 WPF 中使用 UWP 控件库中的控件
在 WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit) 一文中,我们说到了在 WPF 中引入简单的 UWP 控件以及相关的注意事项 ...
- WPF控件库总结
前言 在使用WPF项目的时候, 一般首要的就是对UI部分的选型, 而WPF相关的UI控件和样式库在Githu也是非常多. 关于UI的部分,可以分为二种: 对控件本身没有很大的需求, 只需要在原有的基础 ...
- DevExpress控件库 开发使用经验总结2 DevExpress汉化之WinForm开发模式汉化
2015-01-24 DevExpress控件库默认安装后,使用的本地资源为英文.Developer Express .NET产品都有本地化资源,比如按钮属性,控件属性描述,菜单项,确认和错误的信息等 ...
- Winform DevExpress控件库(一) DevExpress控件库的安装与新建第一个DevExpress项目
前言:因为这段时间要接触到DevExpress控件库,而我本身甚至对winform的控件都了解甚少,所以处在学习中,写下博客主要是为了方便后期的回顾,当然也可以给一些新人第一次接触时做为学习的参考,以 ...
随机推荐
- Java-NIO(六):Channel聚集(gather)写入与分散(scatter)读取
Channel聚集(gather)写入: 聚集写入( Gathering Writes)是指将多个 Buffer 中的数据“聚集”到 Channel. 特别注意:按照缓冲区的顺序,写入 positio ...
- ZOJ-1203 Swordfish---最小生成树
题目链接: https://vjudge.net/problem/ZOJ-1203 题目大意: 给定平面上N个城市的位置,计算连接这N个城市所需线路长度总和的最小值. 思路: 模板题 最小生成树,Pr ...
- Apache Spark Jobs 性能调优
当你开始编写 Apache Spark 代码或者浏览公开的 API 的时候,你会遇到各种各样术语,比如transformation,action,RDD(resilient distributed d ...
- [SCOI2016]幸运数字
题目描述 A 国共有 n 座城市,这些城市由 n-1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征. 一些旅行者希望 ...
- [SDOI2009]HH的项链
题目描述 HH 有一串由各种漂亮的贝壳组成的项链.HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH 不断地收集新的贝壳,因此,他的项链变得越来越长. ...
- UVALive - 3530:Martian Mining
dp 可以发现,对于(i,j),要么把它运上去,那么把它运到左边,枚举一下即可 #include<cstdio> #include<cstdlib> #include<a ...
- 【Uva 11604 编码都有歧义了】
·你的目的就是要让编码有歧义,这就美妙了. ·英文题,述大意: 给出n个模板字符串,询问是否存在一个字符串,使得用模板串(随便你用多少个)来拼凑这个串,能够至少有两种拼法.如果有,就输出“ ...
- [Noi2013]矩阵游戏
来自FallDream的博客,未经允许,请勿转载,谢谢. 婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的n行m列的矩阵(你不用担心她如何存储).她生成的这个矩阵满足一个神奇的性质:若用F[i ...
- bzoj1043[HAOI2008]下落的圆盘 计算几何
1043: [HAOI2008]下落的圆盘 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1598 Solved: 676[Submit][Stat ...
- String.IndexOf 方法笔记
记录以备使用 作用:报告指定 Unicode 字符或字符串在此实例中的第一个匹配项的从零开始的索引. 如果未在此实例中找到该字符或字符串,则此方法返回 -1. 重载列表 名称 说明 IndexOf ...