Лучший способ создать всплывающую замену в WP7 - PullRequest
1 голос
/ 11 марта 2011

Я использую всплывающий элемент управления в wp7 в качестве модального диалога для редактирования строк сетки.Производительность ужасна - открытие может занять до 5 секунд - и я ищу альтернативу.Я также знаю, что у меня будут проблемы в будущем, когда я попытаюсь поддержать ландшафт.

Мой элемент управления сеткой (думаю, сетка данных), открывающий всплывающее окно, является пользовательским элементом управления, который может появиться в любом месте на любой странице.Я попытался встроить в нее скрытую сетку, которая изменяет размеры до 480 x 800, но, кажется, не может заставить ее отображаться выше страницы, чем сетка.

Я не хочу помещать скрытую сетку в каждуюстраница на всякий случай.

Есть ли лучший способ?Наверняка кто-то уже делал подобные вещи раньше.

Ответы [ 3 ]

3 голосов
/ 15 марта 2011

Я перепробовал все альтернативы, но в итоге использовал метод скрытой сетки.

Я создал базовый класс, который ищет именованную сетку на странице, добавляет себя в свойство Children и делает его видимым.

Это просто, эффективно и поддерживает все ориентации.

1 голос
/ 11 марта 2011

Я использовал ChildWindow из основной платформы Silverlight 3, следуя инструкциям: http://wildermuth.com/2010/08/17/Using_ChildWindow_in_Windows_Phone_7_Projects

Если вам не нравится стиль дочернего окна, вы можете редактировать ресурсы - например, в RunSat мое всплывающее окно на самом деле просто светлый текст на темно-сером полупрозрачном фоне.

0 голосов
/ 26 июня 2012

Я думаю, вам следует реализовать новый PhoneApplicationPage и закодировать его как «модальную форму».

Это потому, что в любом случае вам придется потратить некоторое время на написание кода:

  • ChildWindows не имеет телефонного стиля (они графически отличаются от остального GUI) ... худшее решение ...
  • Любой класс, производный от Popup (это абстрактный класс), должен быть настроен, и он не отображается потоком рендеринга WP. Так что ... не очень хорошее решение, как вы видели.

Используя события OnNavigateTo / OnNavigateFrom, вы можете легко сохранять и отслеживать результаты (также коллекции, поля, классы и т. Д.) В простом классе «общего доступа» (может быть связан с классом приложения = у вас всегда есть простой способ). ссылаться на него) ... и вы также все мощные инструменты для полного интерфейса. И, очевидно, никаких проблем с производительностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...