【问题标题】:Create a System-tray styled box in Winforms (C#)在 Winforms (C#) 中创建系统托盘样式的框
【发布时间】:2011-01-11 06:12:18
【问题描述】:

我一直在寻找这方面的一些资源,但我找不到任何资源,所以我会在这里带来。

我想制作一个与您在打开快速启动栏时看到的快速启动框风格相似的窗口:

Example Window http://img63.imageshack.us/img63/6204/volcontrolstyleguide.png

很遗憾,我找不到这方面的任何资源;你能帮帮我吗?

【问题讨论】:

    标签: c# winforms styling


    【解决方案1】:

    这很简单。创建一个新表单,并将ControlBoxMaximizeBoxMinimizeBox 属性设置为false。将Title 属性设置为空字符串。这将有效地消除非客户端标题栏区域,为您提供:

    内部部分(如“自定义”)可以用适当大小的面板和链接复制。

    【讨论】:

      【解决方案2】:

      假设:

      1. 这是一个固定大小的表单,永远不会调整大小

      2. 您希望它可以在 XP 和 Vista 上运行(即,不使用 Vista 特定技术,如“Glass”)。我之所以提到这一点,是因为毕竟系统托盘确实可以追溯到旧石器时代晚期 :)

      方法如下:

      1. 创建一个与 .png 文件大小相同的表单

      2. 将 ControlBox、MaximizeBox、MinimizeBox 属性设置为 'false

      3. 将 FormBorderStyle 设置为“无”

      4. 将Form的透明度键设置为某种颜色,并将Form的背景颜色设置为相同的颜色:注意使用.png文件中没有的颜色。

        李>
      5. 在 Form 上放置一个 PictureBox,将其 Dock 属性设置为 'Fill :将其 Margin 属性设置为所有 Margins 的 #0 :将其 BackColor 设置为 'Transparent :然后,自然地将 PictureBox 的 Image 属性设置为你的 .png 文件。

      注意:

      如果您已经准备好您的 .png 图像,使其以透明区域为界,使其显示为圆形:您可以直接使用它并跳过使用 API 调用实际使 Form 成为圆角矩形的整个步骤设置表单的区域:这确实意味着您的表单将有一个标准的矩形边界框。如果你能忍受这个:这是一个更简单的解决方案。有关如何设置区域:请继续阅读...

      1. 请参阅此处的"How to make form rounded rectangle or round or triangle",了解如何将表单的区域设置为 RoundedRect :此 SO 条目中有几个其他链接到代码示例:Zyphrax 提到的链接使用相同的基本技术.

      2. 尝试使用“CreateRoundRect”的设置来获得您想要的圆角效果。

      【讨论】:

        【解决方案3】:

        听起来您需要 Windows 7 API 代码包,其中一些 API 向后兼容 Vista。由于没有说明Windows的具体版本,所以我不能具体说..您可以在CodeProject上查看herehere这是如何完成的。

        希望这会有所帮助, 最好的祝福, 汤姆。

        【讨论】:

        • @Tommieb75 正如您所说,W7 API 代码包公开的某些功能与 Vista 兼容。我可以肯定地说 TaskBarManager 功能在 Vista 中不可用:基于 Visual Studio 2010 beta 2,我能够成功编译引用 W7 API 的 CodeProject 示例 [1],但无法运行该项目因为:“TaskbarManager.IsPlatformSupported”总是返回 false。 [1]codeproject.com/KB/statusbar/Clipz.aspx
        【解决方案4】:

        您可以使用普通表单并将其修改为您的屏幕截图:

        1. 将 FormBorderStyle 属性设置为无
        2. 在表单的各个角落转一圈:more info here
        3. (如果您愿意,可以扩展玻璃:more info here,仅限 Vista 或更高版本)
        4. 将背景设置为白色并添加一些控件来完成它

        【讨论】:

        • 好吧,用这种方法,我不能圆角和扩展玻璃;这样做会覆盖玻璃并使其变圆。
        猜你喜欢
        • 2023-03-09
        • 1970-01-01
        • 2012-02-16
        • 2011-02-26
        • 1970-01-01
        • 2011-06-25
        • 2017-05-21
        • 2011-05-06
        • 1970-01-01
        相关资源
        最近更新 更多