Перенос приложения Windows CE на Windows Mobile - PullRequest
1 голос
/ 27 января 2010

У меня довольно сложное приложение, изначально созданное для Windows CE (с использованием Visual Studio 2008, C # 2.0). Я сейчас пытаюсь заставить его работать на устройстве Windows Mobile. Однако есть несколько причуд UI. Я заметил, что цвет фона полностью белый, и вокруг многих элементов управления нет границ, как на WinCE. Однако моя самая большая проблема заключается в том, что мое приложение занимает весь экран, поэтому я не вижу верхней панели задач с меню «Пуск» и щелчком (и, вероятно, кнопкой «Закрыть» для моего приложения?). Я также не вижу нижней панели (панели задач?), На которой обычно есть значок, чтобы показать / скрыть клавиатуру.

Моя форма настроена на максимизацию в CE, поэтому она должна занимать большую часть пространства экрана, но не панели задач. Я заметил, что Visual Studio запрашивает целевую платформу (Windows CE или Windows Mobile) при создании нового проекта смарт-устройства. Я действительно надеюсь, что мне не придется перекомпилировать мое приложение для правильной работы на Windows Mobile.

Ответы [ 2 ]

1 голос
/ 27 января 2010

В Windows Mobile установка свойства формы WindowsState для FormWindowState.Maximized приведет к тому, что форма станет полноэкранной, закрывая панель навигации вверху и т. Д.

Я много работал в Windows Mobile <-> WindowsCE-портирование и, в общем, если мне нужно устранить подобные разногласия, я в конечном итоге задаю применимые свойства во время выполнения после того, как выполнил проверку обнаружения платформы.

Используя .NET CF 3.5, вы можете получить что-то вродеследующее:

using Microsoft.WindowsCE.Forms;

if (SystemSettings.Platform == WinCEPlatform.WinCEGeneric)
  this.WindowState = FormWindowState.Maximized;
else
  this.WindowState = FormWindowState.Normal; // Pocket PC or Smartphone

К счастью, таких различий не так уж и много.

Что касается Visual Studio, предлагающей выбрать целевую платформу, по большей части (по крайней мере)для проектов на основе .NET CF) это просто изменяет список эмуляторов и элементов управления из набора инструментов конструктора форм, который вы можете выбрать.

В большинстве случаев вы должны иметь возможность построить приложение на одной платформе и запуститьрезультирующий исполняемый файл на другом.

Одно удобное использование этогоЭта функция заключается в том, что она будет предупреждать вас, если вы попытаетесь использовать что-то, не поддерживаемое конкретной платформой.Например, при выборе платформы для смартфона будут выдаваться предупреждения, если вы попытаетесь использовать элементы управления System.Windows.Forms.Button, поскольку они не поддерживаются на устройствах со смартфоном (без сенсорного экрана).

0 голосов
/ 27 января 2010

Как вы уже узнали, приложения для Windows Mobile имеют немного меньше экранного пространства, чем Windows CE. У вас будет верхняя и нижняя панель, а иногда и дополнительная нижняя панель для значков в трее.

Чтобы обойти эту проблему, вы должны проверить платформу, а затем уменьшить свою форму, если она Windows Mobile. Если вы не можете сделать это без внесения изменений в форму (как в большинстве моих случаев), вы можете попробовать использовать программные клавиши и избавиться от любых кнопок, флажков и т. Д. Программные клавиши могут действовать как кнопки или меню и даже меню внутри меню, если хотите.

Не беспокойтесь о целевой платформе, если у вас уже есть работающее приложение в Windows CE. Вам не нужно переключаться на Windows Mobile, хотя вы получите доступ к эмуляторам и поддерживаемым элементам управления на панели инструментов, как уже было указано.

...