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

一种添加 Office 2007 风格功能区面板的简单方法

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.93/5 (238投票s)

2007 年 4 月 18 日

CPOL

3分钟阅读

viewsIcon

910220

downloadIcon

26772

RibbonPanel 的 GNU 代码,免费的个人和非营利使用软件,其他用途请联系我

Screenshot - overview.jpg

引言

一图胜千言,最后的效果非常可爱。在解释如何将其添加到您的应用程序之前,我将向您展示主要功能。

RibbonStyle 命名空间的功能

  • RibbonButtonTransparency(透明度),Autosizable(可自动调整大小)图像,AutoForecolor(自动前景色),AutoInfoForm(自动信息窗体)(请参阅 InfoFormOnBackImageClickBackImage)。
  • TabPanelTransparency(透明度),BaseColor(基准颜色),BaseColorOn(高亮显示时的颜色),Caption(标题),Resizable(可调整大小)。
  • TabStrip:内部包含
    1. Tab:具有 Autowidth(自动宽度)、BaseColor(基准颜色)、HaloColor(光晕颜色)和 Enable(启用)功能。
    2. TabStripProffesionalRenderer:控制 Tab 的样式(难以处理)
    3. TabStripPageBaseColor(基准颜色),继承自我的 RibbonPanel
    4. TabPageSwitcher:控制 TabTabStripPage 之间的链接。具有 tabcontrolDesign(设计)功能。
  • InfoForm(带阴影):根据标题、注释和图像信息进行显示。RibbonButton 的属性会自行调整大小。

使用控件

希望您能理解这些功能,接下来的内容对您来说会很容易。

  1. 创建一个新的 C# 应用程序。
  2. 将所有类添加到您的应用程序中。
  3. 现在重新生成项目。
  4. 在工具箱中,您将看到许多新控件。

    Screenshot - toolbox.jpg

  5. 现在将一个 Windows.Forms.Panel 添加到 Form 中,并将其停靠在顶部,根据需要进行调整。
  6. TabStrip 添加到 Panel 内部。
  7. 使用 TabStripPageSwitcher,您可以添加 TabStrip。如果您发现点击它很困难,可以在属性窗口中点击。
  8. Screenshot - tabpageswitcher.jpg

  9. 使用 TabStrip 和一些 tab 以及 TabStrip 页面,在 TabStripPages 中添加 TabPanels(请注意 TabPanelBackColor.Transparent(透明背景色))。我建议您将几个添加到窗体中,然后复制粘贴到 tabStripPage 中(稍后可以轻松地停靠它们)。添加 Tabpanel 后,将它们停靠在左侧。
  10. 现在将 RibbonButton 添加到 TabPanel 中,调整其大小和图像,根据需要复制粘贴并更改图像。不要担心文本颜色,它们将在运行时处理。
  11. 如果一切正常,运行后您将看到类似这样的效果(Azure 风格)。

    Screenshot - tabs.jpg

创建自定义样式

正如您在演示 zip 文件中看到的,可以在运行时更改颜色。让我们分析一下代码。如果您查看 Form1 代码,会有一个 SetStyle 方法。

public void SetStyle(string Name)
{
    Color HaloColor = Color.White;
    switch (Name)
    {
        case "Dark":
        this.BackColor = Color.FromArgb(88,77,69);
        HaloColor = Color.FromArgb(200,200,200);
        SetBase(87,61,53,HaloColor);
    break;...

您会发现只需要更改三种颜色!希望您觉得它很有用。其余的都是颜色组件的加减法。因此,为避免颜色错误,我建议您查看我的另一篇文章,其中有一个颜色选择器,仅用于 basecolorHaloColor 是标签上的亮度,而 Backcolor 是窗体的颜色。

关注点

我必须说,在 tabstrip 部分,我使用了 CustomTabstrip 的基础。我对 tabcontrol 感到厌烦,在寻找解决方案后,最好的方法是从 ToolStrip 继承。

该项目包含大量代码,我付出了很多努力编写。如果您需要任何部分的解释,请随时提问。这是 .NET 2.0 代码,我将其放在 Windows 2000 机器上,在 XP 和 Vista 上运行效果都非常好。

为了设计出更好的软件,请为您认为有价值的代码投票,如果您投票了,请告诉我优缺点。

历史

  • 1.0:控件库的第一个版本。
© . All rights reserved.