Изменение размера текста и кнопок вкладки панели док-станции в док-панели DockContent - PullRequest
0 голосов
/ 02 октября 2018

Я выполняю рефакторинг приложения Windows Forms для правильного масштабирования с высокими настройками DPI.Это приложение использует библиотеку DockPanelSuite, чтобы закрепить некоторые из ее инструментов (DockArea.DockLeft) и область основного вида (DockArea.Document).

Моя проблема заключается в том, что ширина полосы вкладки области основного вида часто меньше, чем текст в заголовкеширина, как вы можете видеть здесь .Кроме того, когда форма масштабируется (потому что перемещается между экранами с различными настройками DPI) кнопки полосы вкладок не масштабируются должным образом (см. здесь ).

Я пытался изменить размер шрифта с помощью этих свойств:

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

Но они не масштабируют контейнер с полосами, а только текст внутри него.Что можно сделать, чтобы правильно масштабировать ширину полосы вкладок и кнопки?

1 Ответ

0 голосов
/ 02 октября 2018

Сначала вы должны взглянуть на код, который используется для масштабирования.Очевидно, он масштабируется tab headers по вертикали и горизонтали, но не по тексту.

Для этого есть два возможных решения:

  • Переписать код, используемый для масштабирования, чтобы он также получил tab font /tab page font и измените его масштаб
  • Создайте пользовательский метод расширения

Если вы выберете второй метод, просто создайте метод расширения, посмотрите на Класс TextRenderer для измерения свободного пространства.и размер шрифта он должен идти туда, а затем использовать tab.Font, чтобы изменить шрифт для всех tabPages сразу или tabPage.Font, чтобы изменить его для каждого.

Затем, когда вы инициализируете все, просто вызовите этот метод yourTabControl.ResizeFonts();

...