Вызов экрана пользовательского интерфейса из функции библиотеки классов в WP7 - PullRequest
0 голосов
/ 20 июля 2011

Я недавно начал разработку приложений для Windows 7 и застрял в проблеме, описанной ниже. Любая помощь с благодарностью !!.

Я пишу функцию библиотеки классов WP7, которая будет вызываться из приложения Windows Phone. Я хочу иметь возможность показывать пользователю новый экран после вызова функции, вызванной из функции библиотеки классов . Я также хочу, чтобы этот экран был должным образом интегрирован с остальным пользовательским интерфейсом приложения. , Как, например, щелкнув кнопку «Назад» на экране пользовательского интерфейса, я должен перейти к экрану пользовательского интерфейса, который присутствовал до вызова.

Эта библиотека классов WP7 должна быть связана как скомпилированная библиотека с приложением Windows Phone. Имея это в виду, у меня есть следующие два вопроса.

1) Возможно ли даже запустить экран пользовательского интерфейса из библиотеки классов в Windows phone 7? Если нет, что еще я мог бы сделать здесь?

2) Можно ли интегрировать этот экран с остальной частью потока пользовательского интерфейса приложения, как описано выше.

Ответы [ 2 ]

0 голосов
/ 20 июля 2011

1) Да. Если вы когда-нибудь программировали Win32, тогда я понимаю ваши проблемы. Обработка пользовательского интерфейса в DLL была немного проблематичной.

Первый к выбору класса:

Всплывающий класс может использоваться для перекрытия текущего содержимого экрана. Его основной недостаток заключается в том, что он не ускоряется по HW, поэтому не подходит для сложных экранов или анимаций.

Лучшим решением может быть сохранение PhoneApplicationPage в вашей библиотеке (сборке). Результат такой же, как если бы страница была определена в сборке приложения. Эта статья описывает, как перейти к другой сборке.

Когда вы переходите на другую страницу (которая случайно хранится в другой сборке), отсутствует общий контекст пользовательского интерфейса, такой как главное окно приложения в Win32. Сами страницы полностью независимы. URI первой страницы записан в файле манифеста. (Часть файла xap.) Приложение решает, когда перейти на другую страницу. То же, что и для браузеров.

С технической точки зрения:

Ваша библиотека классов производит сборку (dll). Эта dll содержит a) код (аналогично старым добрым dll Win32), b) Xaml (точная копия кода Xaml, используемого в вашей библиотеке). То же, что и для вашей основной сборки.

Когда вы добавляете ссылку на библиотеку классов, эта dll будет добавлена ​​в файл xap, то есть в установщик. Перейдите в папку bin и посмотрите в файл xap. Это тривиально, так как это просто zip-файл.

0 голосов
/ 20 июля 2011

Очевидно, что вы можете включить страницы XAML в вашу библиотеку.Для этого вы должны включить .pdb файл, который генерируется вместе с .dll для вашего библиотечного класса.Скопируйте оба файла .dll и .pdb в свой проект и добавьте ссылку на .dll .

.
...