1

Я делаю игру, и у меня есть страница меню и страница с самой игрой. Скажите, пожалуйста, как между ними переключаться? На странице с меню есть кнопка, при помощи которой можно перейти на страницу игры.

Какая вообще в принципе должна быть логика в таких приложениях?

2 Answers2

1

Самый простой вариант, видимо, такой.

  1. Вы пишете с MVVM? Заведите себе по VM-классу для меню и всех страниц игры.
  2. Заведите в главной VM свойство ActivePage, в начале присвойте ему экземпляр MenuVM, для переключения на первую страницу присвойте экземпляр Page1VM и т. д. Не забудьте правильно реализовать INotifyPropertyChanged.
  3. Страницы превратите в UserControl'ы.
  4. Положите в App.xaml шаблоны, привязывающие VM к UserControl'ам:

    <Application.Resources>
        <DataTemplate DataType="{x:Type vm:MenuVM}">
            <view:MenuControl/>
        </DataTemplate>
        <DataTemplate DataType="{x:Type vm:FirstPageVM}">
            <view:FirstPageControl/>
        </DataTemplate>
        <!-- и так далее -->
    </Application.Resources>
    
  5. В MainWindow.xaml положите код, который будет выбирать нужный шаблон в зависимости от типа ActivePage:

    <ContentPresenter Content="{Binding ActivePage}"/>
    

Таким образом, логика перехода между страницами уходит в VM-уровень. А там переключение сводится просто к присвоению переменной значения.

Всё!

VladD
  • 206,799
0

Вместо страниц используйте Prism. Там навигация проще и ещё есть куча плюсов по управлению жизни объектов