2013-09-24 3 views
0

Я столкнулся один такой же проблема для пытаюсь поддержать любого из следующих параметров в приложении WinForm:Как обрабатывать размер элементов управления в приложении WinForm для разного размера шрифта/локализованного текста?

  1. Параметр, который позволяет пользователям изменять шрифт и размер шрифта во всех записках/этикетках/кнопках/редактирует/комбо/сетки/.. и т.п .. управление.
  2. Локализация где длина/размер текста изменяется на разных языках (и потребуется больший размер шрифта)
  3. «Windows Цвет и внешний вид» настройки, которые позволяют изменить шрифт и размер шрифта

проблема в том, что размер/расположение/расположение элементов управления будут испорчены из-за изменения размера. Либо элемент управления не может отображать весь его контент, либо авторизованный элемент управления будет перекрывать другие элементы управления или обрезаться границей родительского элемента управления или иметь проблемы с wordwrap или ... и т. Д.

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

Заранее спасибо.

+0

winforms не является независимым от разрешения и не поддерживает тематику. Вот почему WPF был создан для его замены. Я настоятельно рекомендую вам использовать текущие, соответствующие .Net-технологии Windows UI, если вам нужна какая-либо из этих функций. –

ответ

2

Я бы предложил разместить элементы управления в контейнерах, предназначенных для этой цели ... например, TableLayoutPanel. Возможно, даже вложенные панели, если ваш макет сложный. При этом вы можете разрешить большинство вещей AutoSize и управлять позициями на основе процентов общей ширины/высоты.

0

Насколько я понял, вы хотите изменить размер шрифта для всех своих элементов управления и опасаться, что эти изменения разрушат ваш макет.

Прежде всего вам нужно выяснить, как вы собираетесь обрабатывать более крупный/длинный текст. Вы можете обернуть строки или обрезать хвосты, или вы можете увеличить размер макета, сохраняя при этом пропорции ваших элементов управления одинаковыми. Кроме этого, я не думаю, что есть легкое решение для обработки произвольных изменений в font-size/language.