Как вы переключаетесь между «страницами» приложения Silverlight? - PullRequest
2 голосов
/ 08 июня 2009

В настоящее время я загружаю файл по умолчанию page.xaml, но на этой странице я загружаю содержимое из другого файла xaml. С каждым изменением «страницы» я просто загружаю содержимое из другого файла xaml, и так далее.

Пример: this.Content = new StartPage ();

Однако у меня возникают некоторые проблемы с синтаксисом из-за того, как я меняю свой контент, и мне было интересно, есть ли определенный ответ о том, как этого добиться?

Например, при попытке зафиксировать нажатия клавиш пользователя, я обычно делал бы:

this.Keydown + = новый KeyEventHandler (this_KeyDown);

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

Ответы [ 3 ]

1 голос
/ 08 июня 2009

Рассматривали ли вы использование Silverlight 3. У него появилась новая функция навигации по страницам. Silverlight 3 Navigation

0 голосов
/ 25 июня 2009

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

Взгляните на Prism по адресу www.compositewpf.codeplex.com/, в частности, на метод MVVM для проектирования графического интерфейса, это сэкономит вам много времени позже. И помните, вам не нужно идти на хардкор, когда вы смотрите на MVVM, вы всегда можете отключить много «динамических» функциональных возможностей, если вы группа из одного человека

Также переключитесь на silverlight 3 и используйте приложение навигации. Если вы не можете, взгляните на спираль 0.3 , это обеспечит более ориентированный на жопу подход к навигации. ссылка дает действительно очень хорошую отправную точку, это статья из трех частей, я предлагаю вам прочитать все три, загрузить образец приложения и понять его.

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

0 голосов
/ 09 июня 2009

Что касается переключения контента, я всегда делал то, что вы предлагаете в вопросе. Обычно я создаю MainPage.xaml, у которого есть фрейм приложения (обычно это Grid для меня). Одна из ячеек в Grid считается областью содержимого приложения. Когда пользователь выполняет действие, которое я бы назвал навигацией, я создаю новый экземпляр страницы, который для меня является файлом, подобным MyUserControl.xaml, и затем добавляю его в соответствующую ячейку содержимого в сетке. MainPage работает в течение всего срока службы приложения и помогает с навигацией.

Если вы хотите что-то более изощренное и хотите воспользоваться кнопками «назад» / «вперед» на основе браузера, вы можете взглянуть на навигацию SL3, как предложил Correl.

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