65.9K
CodeProject 正在变化。 阅读更多。
Home

通知栏。

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.45/5 (32投票s)

2008年6月4日

LGPL3

2分钟阅读

viewsIcon

71353

downloadIcon

3217

一个小的且易于使用的通知栏,类似于 IE6+ 和 Firefox 网页浏览器中的通知栏。

InfoBar03_Normal.png

snapshot1.png

引言

NotificationBar 为您提供了一个易于使用的控件,它可以替代消息框/弹出框,在不需要它们的情况下使用。 当需要显示少量信息,而又不希望使用弹出窗口来分散用户的注意力时,这是一个值得考虑的解决方案。

任何在 Win XP SP2+ 上使用过 IE6+ 的人都知道那些在尝试下载文件时出现的 信息/通知栏。 这就是我今天带来的。 一个小的,完全用 C# 编写的该控件的版本。

当前特性

  • 快速
  • 在 .NET 和 Mono 上工作
  • 可用于商业项目
  • 可以闪烁控件任意次数
  • 在显示和隐藏控件时可以使用动画
  • 显示时可以播放声音
  • 自动换行

使用代码

该控件非常易于使用。

此库中包含的类和方法如下所示。

NotificationBar

扩展 Control 类,NotificationBar 类是库中唯一的类,包含该控件。

  • OnClickMenuStrip
  • 设置单击控件时看到的 ContextMenuStrip

  • SmallImageList
  • 设置用于在控件最左侧显示图像的 ImageList

  • ImageIndex
  • 设置要在控件中使用的 SmallImageList 中图像的图像索引。

  • NotificationBar
  • 类构造函数方法。

  • DrawText
  • 绘制在控件上看到的文本。

  • DrawCloseButton
  • 绘制在控件最右侧看到的关闭按钮。

重写的方法和属性已从上面的列表中省略。

使用控件非常简单,如下所示

//Add the using statement for the control's namespace
using WinComponents.Controls; 
//Then add the control your font, text, and anything else.
NotificationBar infoBar = new NotificationBar ();
infoBar.Name = "informationBar1";
infoBar.Size = new Size(100, 20);
infoBar.Dock = DockStyle.Top;
infoBar.Font = new Font(FontFamily.GenericSansSerif, 8.25f);
infoBar.Text = "Hello, here is some info!";
infoBar.Show();  
//Adding a pop-up menu or an image is as simple as
infoBar.OnClickMenuStrip = contextMenuStrip1;
infoBar.SmallImageList = imageList1;
infoBar.ImageIndex = 2;

这些是您应该得到的结果

带有短字符串的信息栏的正常视图

InfoBar03_Normal.png

带有短字符串的信息栏的悬停视图

InfoBar03_Hover.png

最后,具有较长字符串的正常和悬停状态

InfoBar04_Normal.png

InfoBar04_Hover.png

历史

2008 年 6 月 4 日 - 发布版本 1.0.0

2008 年 6 月 4 日 - 发布版本 1.0.1

  • 更改了关闭按钮的位置。
  • 修复了设置新索引后图像不更改的问题。

2008 年 7 月 2 日 - 发布版本 1.0.2

  • 已测试并在 Mono 上运行。
  • 将控件重命名为 NotificationBar。
  • 添加了闪烁控件的功能。
  • 添加了在显示控件时播放通知声音的功能。
  • 添加了对属性值的设计器支持。

2008 年 7 月 27 日 - 发布版本 1.0.4

  • 更新到文本颜色随背景变化。
  • 添加了动画显示和隐藏控件的功能。
  • 添加了使用 Mono 在 Linux 中运行控件的屏幕截图。
© . All rights reserved.