2011-01-18 2 views
0

Мое приложение загружает информацию из файла, которая затем создает x количество элементов управления в y количествах табуляций в форме.Добавление элементов управления (дорожки, многострочные текстовые поля и метки) в форму под разными DPI - C#

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

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

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

Благодарим за помощь или советую вам дать мне!

ответ

0

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

 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); 
     } 
1

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

+0

Set AutoScaleMode в None. Благодарю. – RHodgett