【问题标题】:Customising the text in Winforms title bar自定义 Winforms 标题栏中的文本
【发布时间】:2018-11-02 04:08:01
【问题描述】:

我正在开发一个基于 winform 的应用程序。我只想在标题栏的左侧放置一些超链接,如下图所示,然后添加超链接。在winforms中可以吗?
除了那个 winform 标题栏还有一个标题,如“Happy Days Design Suite”所示

替代解决方案是完全删除标题栏并添加标签,但在此之前我只想检查是否可以将文本添加到标题栏

【问题讨论】:

  • 这取决于你有多想要它,让它正确和完美可能有点棘手,因为没有开箱即用的方法来做到这一点,并且需要一定程度的黑客技术
  • 一种更简单的方法是隐藏TitleBar(没有ControlBox、没有MinimizeBox、没有MaximizeBox、没有文本)并构建你自己的TitleBar,带有一个面板和一些按钮和链接标签。您可以使用SystemInformations 属性将各个部分设置为正常 大小和颜色。处理系统主题更复杂。平面按钮帮助。
  • @MickyD 嗯,这是最简单的部分。您可以对面板进行自定义控件。覆盖OnMouseDownOnMouseMove 你甚至不需要PInvoke SendMessageReleaseCapture()。系统菜单更复杂。无论如何,如果真的需要的话,可以伪造(是的,我知道,仅键盘的窗口移动变得困难)。否则,您将不得不覆盖 WndPrc 或转到 DWM 渲染。
  • 我对这类事情的经验是,是的,这一切皆有可能,但如果你没有在所有情况下都做到完全正确和完美,它只会让应用看起来 B 级。你最好把时间花在其他地方。
  • @CodingYoshi,确实,通常 WinForms 桌面应用程序的标题栏中没有链接。但是许多具有丰富 UI 的现代 UWP 桌面应用程序确实在其标题栏中具有链接、按钮甚至文本框。

标签: c# winforms


【解决方案1】:

不是 OP 正在寻找的答案,但很可能是 Microsoft 想要的方式 - 如果表单上有空间,请在设计器中添加一个 StatusStrip,然后向它添加一个 ToolStripStatusLabel。 ToolStripStatusLabel 支持开箱即用的超链接。

人生苦短,走阻力最小的路。 WinForms 是一个固执己见的框架,您最安全的选择是按照他们的方式做事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    相关资源
    最近更新 更多