2016-03-31 8 views
1

Я разработал приложение Winforms с панелью инструментов. Последним элементом на панели инструментов является ToolStripDropDownButton с некоторыми элементами.ToolStripDropDownButton не отображает элементы при выравнивании по правому краю

Мне понадобилась эта кнопка, которая будет отображаться отдельно от всех других кнопок на панели инструментов, поэтому я установил свойство Alignment вправо.

На моем ПК это работает отлично, однако, когда я переместил весь проект Visual Studio на свой ноутбук и затем запустил приложение, элементы меню не отображаются, когда я нажимаю кнопку, однако кнопка раскрывающегося списка меняет цвет, указывающий что он был выбран.

Во время разработки элементы отображаются правильно.

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

Благодаря Jaime

ответ

0

Проверьте настройки DPI на вашем ноутбуке. Вероятно, это изменение размера и заполнения ваших элементов. Вы можете обойти это, проверив значение DPI системы и вычислив размеры элементов управления на основе этого.

var graphics = this.CreateGraphics(); 
var dpiX = graphics.DpiX/96d; // Default DPI 
var dpiY = graphics.DpiY/96d; // Default DPI 
myToolbar.Width = myWidth * dpiX; 
myToolbar.Height= myHeight * dpiY; 
+0

Вы были правы ... dpi от ноутбука были изменены, но мне не нужно было обходиться обходным путем. Проблема заключалась в том, что к нему подключен разъем внешнего монитора. С его помощью ноутбук DPI был изменен, я думаю, чтобы он соответствовал расширению экрана с помощью монитора. – jstuardo

+0

Я заметил, что внешние мониторы могут иметь странные эффекты для настроек DPI. Вы можете иметь 100% DPI на основном дисплее, но 120% на вторичном. Когда вы программно проверяете параметры DPI, вы можете получать смешанные результаты, и это может быть сложно учесть. – DunningKrugerEffect