Windows Mobile авторазмера с панелями - PullRequest
2 голосов
/ 11 июля 2011

У меня есть приложение, которое будет работать на двух разных устройствах - одно с размером экрана 240x320, другое 480x640.

Для всех столбцов форм сгенерирован код VS:

this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.AutoScroll = true;

Для одной формы я собираю подпись. Я делаю это с помощью панели с графическим обработчиком; захват мыши и перемещение событий; это создает список векторных точек, с помощью которых я могу рисовать линии.

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

Форма создана с размером 240 х 268; стандартный размер, я думаю - я не установил его вручную, VS делает это для меня.

Чтобы расположить панель в нужном месте на устройстве высокого разрешения, координаты составляют 3, 290; т.е. 290 прошло 268. Кроме того, ширина панели составляет 448, что несколько больше, чем 240.

Я использую .net 2.0 (не могу использовать позже). Я думаю, что мне нужно изменить размер формы, чтобы увеличить ее, но я хочу сохранить существующее изменение размера для других элементов управления в форме.

Я не уверен, как это сделать.

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Создайте форму для заполнения, затем используйте свойства Anchor, чтобы обеспечить изменение размеров элементов управления в форме, как ожидалось.

Если вы хотите настроить размер отдельного элемента управления, то НЕ устанавливайте свойства привязки для него, а вместо этого обрабатывайте событие Resize и выполняйте пользовательское изменение размера / положения в коде.

например

private void form_Resize(object sender, EventArgs e)
{
    // Center the control without changing width. Other controls are anchored.
    this.control.Left = (this.Width - this.control.Width) / 2;
}
0 голосов
/ 12 июля 2011

Я пишу этот ответ в пользу тех, кто может столкнуться с подобной проблемой в будущем. PaulG указал мне правильное направление, но я нашел коренную причину в другом.

Полученный мной проект PDA использует «FormFactor WindowsMobile 6 Classic», размер по умолчанию которого составляет 240 x 268.

Изменение этого параметра на "Windows Mobile 6 Professional VGA" создало гораздо больший размер формы.

Это позволило мне правильно расположить вещи для большего размера; затем AutoScaleMode to DPI; и уменьшив размер панели вручную, все заработало.

То есть переходить от большего к меньшему было легко; Я не стал работать меньше.

...