介绍

从Vista开始,地址栏就有了很大的改变,不知道大家有什么感觉,笔者觉得很方便,同时又兼容之前的功能,是个很不错的创新。不过,微软并不打算把这一很酷的功能提供给广大的开发人员。

本文提供了一个简单的Address Bar实现,使用.NET 2.0和VS2008. 它是基于一个简单的树型遍历实现的,同时适用于各种级联数据。

Demo中提供的是一个非常简单的示例,可以浏览文件系统。这里这是展示它是如何工作的。

使用代码

了解实现最简单的办法就是直接下载源代码,然后打开玩玩看~

在Design-Time下将Address Bar Control拖入Form,然后再构造器中加入下面一行代码:

  1. //Initialize the bar with a root node type.
  2. this.AdBar.InitializeRoot(new FileSystemNode());

你只需要传入一个根节点,然后根节点就会为control提供信息。FileSystemNode包含Windows系统安装后的第一个逻辑盘信息。 要实现IAddressNode类型,有如下三个重要的方法需要自己实现:

  1. UpdateNode() - Used to update the node itself for any changes (e.g. in the FileSystemNode it checks for child folder changes and folder name changes)
  2. GetChild() - Searches for a given child node based on a unique ID (A Unique ID being whatever you define it as. In FileSystemNode, we use an absolute path for a folder as the unique ID).
  3. Clone() - Clones a given node as a separate value copy (rather than just by reference).

总结

示例很简单,相对来说也是轻量级的实现。如果想用它操作输了FileSystemNode以外的数据,你只需要实现IAddressNode接口,任何级联结构(hierarchical structure)的数据都可以用它来呈现。

许可证

本文以及示例代码文件遵循The Code Project Open License(CPOL)。

×××

附件:AddressBarExt2_1.zip

英文链接:Vista Style Address Bar for .NET 2.0/WinForms

转载于:https://blog.51cto.com/powertoolsteam/465578

Windows 7样式地址栏(Address Bar)控件实现相关推荐

  1. slider(滑动条)控件模版,样式--用图片定义控件模版

    初接触wpf,想自己用图片做一个个性slider滑块控件,网上找了很久无果.后来一些机缘巧合看别人源码的时候找到了类似的,然后自己再查了一下msdn,大概弄懂了. 我们先来看看slider控件组成元素 ...

  2. 快速构建Windows 8风格应用6-GridView数据控件

    原文:快速构建Windows 8风格应用6-GridView数据控件 本篇博文主要介绍什么是GridView数据控件.如何构建常用的GridView数据呈现样式. 什么是GridView数据控件? G ...

  3. iOS开发UI篇—Date Picker和UITool Bar控件简单介绍

    iOS开发UI篇-Date Picker和UITool Bar控件简单介绍 一.Date Picker控件 1.简单介绍: Date Picker显示时间的控件 有默认宽高,不用设置数据源和代理 如何 ...

  4. Windows应用程序设计基础(常用控件2)

    列表框控件 列表框(ListBox)控件提供一个项目列表,,用户可从中选择一项或多项.(若超过可显示的项目数会自动添加滚动条) 列表框内的项目为列表项,列表项的加入是按照一定顺序进行的,这个顺序号称为 ...

  5. Windows App开发之经常使用控件与应用栏

    控件的属性.事件与样式资源 怎样加入控件 加入控件的方式有多种,大家更喜欢以下哪一种呢? 1)使用诸如Blend for Visual Studio或Microsoft Visual Studio X ...

  6. 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame

    重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame 原文:重新想象 Windows 8.1 Store Apps (79) - 控 ...

  7. Windows Phone 8.1 新特性 - 控件之应用程序栏

    原文:Windows Phone 8.1 新特性 - 控件之应用程序栏 2014年4月3日的微软Build 2014 大会上,Windows Phone 8.1 正式发布.相较于Windows Pho ...

  8. 修改安卓默认的系统button样式,以及其它系统控件的默认样式

    先介绍下修改原理:首先打开位于android.widget包下面的Button.java文件,这里有一句关键的代码如下: public Button(Context context, Attribut ...

  9. MFC Windows 程序设计[327]之树形表格控件例程(附源码)

    MFC Windows 程序设计[327]之树形表格控件例程 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries ...

最新文章

  1. “无路之门”,一款VR恐怖冒险游戏
  2. m行n列最大值和最小值C语言,找数组最值 按如下函数原型编程从键盘输入一个m行n列的二维数...
  3. (chap4 IP协议) IP协议
  4. Golang——垃圾回收GC
  5. Linux学习笔记007---Centos7中配置静态ip
  6. thymealf 高级用法_史上最详 Thymeleaf 使用教程
  7. smarty手册 分离php和html
  8. 马哥Linux 高端运维云计算就业班
  9. 嵌入式Linux书籍清单
  10. 如何创建SQL Server Management Studio 18(SSMS)扩展
  11. CentOS cp复制命令覆盖文件不提示 实现直接覆盖
  12. python——【1】gzip压缩文件
  13. rhel6.5搭建mantis时报错
  14. 人月神教beta阶段冲刺报告集合
  15. cpu要和gpu搭配吗_谈谈CPU和显卡如何搭配
  16. python 监控键盘输入_python 监控键盘输入
  17. 第三方支付平台业务分析
  18. 2020中北大学计算机调剂名额,2020年中北大学考研调剂信息
  19. 学习是怎样的一个过程??
  20. Warning: mysqli_fetch_assoc() expects exactly 1 parameter, 2 given in求解决

热门文章

  1. AndroidStudio安卓原生开发_android中使用StringUtils类_引入commons-lang的jar---Android原生开发工作笔记132
  2. C++_类和对象_C++多态_多态案例1-计算器类_抽象父类---C++语言工作笔记071
  3. STM32工作笔记0034---蜂鸣器实验-M3
  4. tomcat 无端口号访问
  5. Could not calculate build plan
  6. 杭电1863畅通工程
  7. Unable to resolve target 'android-7'
  8. 百度实习笔试题(2012.5.6)
  9. 计算机二级access上机题,计算机二级ACCESS上机题库
  10. 随想录(用好Visual Studio开发平台)