【问题标题】:Resize dock pane tab strip text and buttons in Document docked DockContent在停靠的 DockContent 文档中调整停靠窗格选项卡条文本和按钮的大小
【发布时间】:2018-10-02 12:31:17
【问题描述】:

我正在重构 Windows 窗体应用程序,以便在高 DPI 设置下正确缩放。此应用程序使用 DockPanelSuite 库来停靠它的一些工具 (DockArea.DockLeft) 和主视图区域 (DockArea.Document)。

我的问题是主视图区域标签条的宽度通常小于封闭的标题文本宽度,如您所见here。此外,当表单被缩放时(因为在具有不同 DPI 设置的屏幕之间移动)选项卡条按钮无法正确缩放(请参阅here)。

我尝试使用这些属性修改字体大小:

dockPanel1.Theme.Skin.DockPaneStripSkin.TextFont dockPanel1.Theme.Skin.AutoHideStripSkin.TextFont

但它们不会缩放条形容器,只会缩放其中的文本。 如何以正确的方式缩放标签条宽度和按钮?

【问题讨论】:

  • 欢迎补丁作为 GitHub 拉取请求,但目前这个库没有太多的高 DPI 支持。
  • 我明白了。我已经从 GitHub 下载了 dockpanel-suite 源代码,并且我已经阅读了一些代码(主要在主题部分),但我无法弄清楚如何以正确的方式修改代码。你有提示吗?
  • 不幸的是没有足够的文档,除了docs.dockpanelsuite.com/themes/basics.html 在大多数情况下,你必须参考我之前的提交以了解构建块是什么。我也发了几篇博文,blog.lextudio.com/tagged/dockpanel-suite
  • 谢谢,我会检查博客文章,我会尝试修改dockpanel套件代码来满足我需要的缩放。也许我还会向 GitHub 添加一些提交(目前我不确定,这取决于我未来更改的质量 :-D)

标签: c# winforms dockpanel-suite


【解决方案1】:

首先,您应该查看用于缩放的代码。显然它可以垂直和水平缩放tab headers,但不是文本。

对此有两种可能的解决方案:

  • 重写用于缩放的代码,使其也得到tab font/ tab page font 并重新缩放
  • 创建自定义扩展方法

如果您选择第二种方法,只需简单的创建扩展方法查看TextRenderer class 以测量可用空间和字体大小,它应该去那里,然后使用tab.Font 一次更改所有tabPages 的字体或tabPage.Font为每个更改它。

然后当你初始化所有东西时,只需调用这个方法yourTabControl.ResizeFonts();

【讨论】:

  • 对不起,我可能没有理解你的解释。在我看来,您正在谈论缩放 .NET TabControl 控件的选项卡条。我的问题是关于如何缩放WeifenLuo.WinFormsUI.Docking.DockPane 控件的标签条(WeifenLuo.WinFormsUI.Docking 是第三方 DLL)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多