Адаптация Winforms под экран C#

193
24 июля 2018, 17:20

У меня монитор (16:9 - 1920/1080). Делал под своё разрешение. Я думал что Win Forms C# сами подстраивают разрешеник, как оказалось - нет. На монике (4:3 - 1280/1024) программа улетает за границы экрана. Как сделать адаптацию формы под разрешение экрана? Или как-то парсить разрешение в переменную, и через IF, настраивать в ручную

Answer 1

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

Вам можно попробовать, к примеру, System.Windows.Forms.TableLayoutPanel, в нем разместить все ваши элементы в соответствующих строках и столбцах, установив, к примеру, свойство Dock как DockStyle.Fill.

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

Опять же, учтите, что пропорции широкоформатного и обычного дисплеев отличаются, и, что для 16x9 смотрелось органично, для 4x3 уже может быть не таким и удобным.

Поэтому, можно при загрузке окна немного изменять размеры того или иного столбца, в зависимости от разрешения текущего экрана.

Answer 2

В свойствах, насколько мне известно, любого объекта, есть раздел Layout(с англ - расположения), в котором, в свою очередь, есть свойства Anchor , Autosize, AutosizeMode. С помощью этих свойств расположения объектов на форме будут меняться в зависимости от её размера. Попробуйте поэкспериментировать.

READ ALSO
Фиксация opacity mask wpf

Фиксация opacity mask wpf

Нужно получить такое меню с прокруткой

200
Вынос строки подключения к БД в appsettings.json

Вынос строки подключения к БД в appsettings.json

Не получается вынести строку подключения к БД из кодаЕсли закомментировать подключение в MyDbContext

149
Отобразить отдельные столбцы в dataGridView

Отобразить отдельные столбцы в dataGridView

Через oledb загружаю данные с exelВ dataGridView нужны только отдельные столбцы

202
Изменение кодировки строки C#

Изменение кодировки строки C#

Получаю строку из файла HTML и вывожу в консоль, но кодировка в виде иероглифовПытаюсь ее изменить следующим образом:

180