Добавление элементов управления (трекбары, многострочные текстовые поля и метки) в форму под разными DPI - C # - PullRequest
0 голосов
/ 18 января 2011

Мое приложение загружает информацию из файла, который затем создает x количество элементов управления для y количества вкладок в форме.

Моя проблема заключается в том, что когда у пользователя другой DPI, чем у стандартной Windows 96, добавленные элементы управления перекрывают друг друга. Начальные элементы управления в форме в порядке.

Как я могу настроить элементы управления на 96 DPI вместо того, чтобы работать на компьютере пользователя?

Если это очень сложно, есть ли способ узнать, что такое DPI пользователей? Затем я могу выдать предупреждение о том, что вы должны использовать 96DPI и т. Д. И т. Д.

Спасибо за любую помощь или совет, который вы можете дать мне!

Ответы [ 2 ]

1 голос
/ 18 января 2011

Я предполагаю, что вы используете Windows.Forms. Вы можете использовать свойство AutoScaleMode для управления масштабированием каждого элемента управления GUI. Есть и другие варианты, которые вы можете выбрать, поэтому идите и попробуйте, что лучше для вас, или вы также можете прочитать эту статью в MSDN , чтобы получить больше информации о принципах масштабирования элементов управления в Windows.Forms.

0 голосов
/ 19 января 2011

Просто чтобы ответить на свой вопрос, я написал это и добавил в событие загрузки формы:

        Graphics formGraphics = this.CreateGraphics();
        if ((formGraphics.DpiX != 96) || (formGraphics.DpiY != 96))
        {
            MessageBox.Show("You are attempting to run this application in an unknown DPI. This application has been designed for Normal size (96 DPI), you may experience some display issues if you continue to use your current settings. Please change your Display settings back to normal size through your control panel to ensure you don't experience any problems. Thank you.",
            "Warning",
            MessageBoxButtons.OK,
            MessageBoxIcon.Exclamation,
            MessageBoxDefaultButton.Button1);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...