Как кодировать интерфейс Windows Phone 7 только программно (в файле .cs) без использования конструктора - PullRequest
2 голосов
/ 18 марта 2011

Я новичок в разработке для Windows Phone 7.

Обычно дизайн пользовательского интерфейса выполняется с помощью Designer и Drag & Drop. Но в моем проекте мне нужно программировать весь пользовательский интерфейс программно, то есть вручную писать элементы управления дизайном в файле .Cs вместо файла .xaml.

Возможно ли это? Я попытался найти его в Google, я еще не нашел учебник или документацию.

Может кто-нибудь, пожалуйста, помогите мне начать процесс. Ссылка на документацию или книги

Спасибо

Ответы [ 5 ]

4 голосов
/ 18 марта 2011

Я определенно думаю, что вы можете делать все без XAML, если хотите.

Основной подход должен заключаться в создании базового приложения с App.xaml и почти пустым Page.xaml.После этого вы сможете динамически добавлять элементы управления в соответствии с вашими потребностями.

Большая часть этой работы довольно проста

  • создание элементов управления, настройка свойств, добавление обработчиков событийвсе легко.
  • Более неуклюжими будут такие вещи, как создание анимаций, визуальных состояний, стилей и привязок данных - синтаксис XAML для них довольно удобен по сравнению с C #
  • Кроме того, если вам нужно несколько страниц,тогда использование навигации также немного более неудобно - NavigationService в настоящее время построен на страницах на основе XAML.

В iron7 я написал множество одностраничных приложений, не используяXAML.Весь код написан на IronRuby, а не на C #.Как разработчик, я думаю, вы должны быть в состоянии следовать большинству из них - взгляните на эти примеры на script.iron7.com :

Чтобы запустить эти сценарии, просто загрузите iron7free срынок.Преобразование их обратно в C # - это, в основном, случай удаления некоторых символов "_", изменения заглавных букв и превращения def в методы C #.

Примечание. Для пояснения я не рекомендую писать свое приложение на Ruby -Просто это единственные примеры написания приложения в коде вместо XAML.

2 голосов
/ 18 марта 2011

Сначала необходимо создать базовую страницу xaml, по крайней мере, с панелью стека.

Затем вы можете добавить элементы управления на панель стека следующим образом

TextBox textbox = new Textbox();
textbox.Text = "TEST";
PageStackPanel.Children.Add(textBox);
0 голосов
/ 18 марта 2011

Обычно мне не нравится дизайнер, и я стараюсь избегать его как можно больше.Мне легче писать на Xaml.

Но я также стараюсь избегать использования Xaml, потому что:

  • Производительность: код на C # определенно быстрее
  • Стиль программирования:Я ненавижу, когда связанный код разбросан по нескольким файлам.Это не только мой код на C #, но и скрытый автоматически сгенерированный код (иногда содержащий ненужные конструкции).
  • Отладка: Xaml допускает больше ошибок (например, неправильное написание), ошибки Xaml труднее локализовать

Сказав это, я должен не согласиться со Стюартом: некоторые вещи не могут быть выполнены в C #, вы должны делать это в Xaml.Например:

  • Визуальные состояния: Вы не можете установить свойство VisualStateGroup.Name только для чтения в C #, но вы можете использовать атрибут X: Name в Xaml.

  • UserControl.Content защищен (для SVL3 и, следовательно, также для WP7), но Xaml обходит это ограничение

и т. Д.(Есть еще такие особые вещи.)

0 голосов
/ 18 марта 2011

Ну, это основа Silverlight. Вы можете кодировать его вручную, используя XAML (расширяемый язык разметки приложений)

Чарльз Петцольд (Charles Petzold) пишет книгу о программировании на Windows Phone 7, вы можете скачать ее бесплатно здесь:

http://www.charlespetzold.com/

0 голосов
/ 18 марта 2011

У вас есть возможность перетаскивания для разработки Windows Phone 7.Загрузите Visual Studio для Windows Phone 7 и попробуйте примеры.http://www.microsoft.com/express/Phone/

Вот учебник для начинающих: http://blogs.msdn.com/b/somasegar/archive/2010/03/15/introducing-windows-phone-7-development-tools.aspx

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