【问题标题】:make windows form Title at The middle of the tittle bar在标题栏中间制作windows窗体标题
【发布时间】:2011-09-25 15:54:35
【问题描述】:

在我的 windows 窗体应用程序中,我想在它的栏(标题栏)中间制作窗体的标题,例如: 如果你在 windows xp 上打开我的电脑,你会在标题栏的左侧找到它,例如,我想将我的标题放在同一个栏的中间

如何?

【问题讨论】:

  • 第 1 步:安装 Windows 8 DP。第2步:完成。太丑了。
  • :D 我已经安装了它,但我想把它安装到我的旧应用程序中 我的客户之一想要它在中间 :D
  • 他们是否有理由希望您的应用与他们将使用的所有其他应用的行为有所不同?
  • 你必须自己画,这很难做到。
  • Microsoft Office 会这样做,所以我认为让应用程序将标题居中显示是一个有效的请求。

标签: c# winforms windows-forms-designer


【解决方案1】:

使用常规 WinForms 表单属性是不可能的。另一方面,您可以创建没有任何边框的表单并自定义绘制自己的边框。这将与其他皮肤库非常相似,因此如果您不想费心编写自己的自定义例程,可以查看供应商提供的各种皮肤库。

【讨论】:

  • 皮肤是最好的方法。但另一个是获取 OnSize 消息并使用前导空格设置标题。
【解决方案2】:

基本上有三种选择:

  1. 创建一个具有居中标题和适当的最小化/最大化/关闭按钮的自定义控件。使用不带标题栏的 from 并将您的自定义控件放在顶部。

  2. 使用 GDI+ 绘制标题,并使用表单调整大小事件更新其位置。完全破解,甚至不确定这是否可行。

  3. 根据表单的宽度计算将标题居中所需的空格数,然后将它们插入到标题文本之前。蹩脚的解决方案,但它会起作用并且易于实施。

【讨论】:

  • #3 可能是让它看起来居中的最佳 HACK,不过我会添加一件事。每次调整窗口大小时,您都需要计算空格数,并使用 DrawString 和框架大小来计算您需要多少空格。
  • 没有。 1 行不通。至于没有。 2、自定义绘制非客户区还有很多。由于不知道非客户端 chrome 有多大,因此第 3 项很复杂。要解决这个问题需要一定程度的努力。
  • 我不知道你为什么说#1 行不通。我以前用这种方式构建过自定义窗口,网上有很多例子。它实际上工作得很好。
猜你喜欢
  • 1970-01-01
  • 2011-11-20
  • 2017-09-09
  • 2016-12-23
  • 1970-01-01
  • 2010-09-11
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多