Замена Windows в С# WPF вместо открытия новой?

Я пытаюсь создать приложение «Руководство» для видеоигры. Я хочу, чтобы кнопка очищала все в окне и показывала что-то еще вместо создания другого окна. Я использовал код:

Window1 w1 = new Window1();
        w1.Show();
        this.Close();

Вместо этого метода, который закрывает текущее окно и открывает новое, есть ли способ очистить все в окне и вывести другую информацию?


person minglefrog    schedule 06.05.2020    source источник
comment
Ты имеешь в виду что-то вроде Волшебника? См. этот ответ - это то, что вы имеете в виду?   -  person Fildor    schedule 06.05.2020
comment
Вот пример: пользователь запускает приложение. Затем им предлагается выбрать категорию информации, и когда они выбирают одну, они получают эту информацию, не открывая новое окно. Я хочу, чтобы главное окно стерло все, что у него есть, и заменило свою информацию другой информацией.   -  person minglefrog    schedule 06.05.2020
comment
Или просто замените содержимое текущего окна.   -  person Clemens    schedule 06.05.2020
comment
Точно! Есть ли способ использовать кнопку таким образом, чтобы заменить главное окно другим, не открывая новую вкладку?   -  person minglefrog    schedule 06.05.2020
comment
Я хочу, чтобы главное окно стерло все, что у него есть, и заменило свою информацию другой информацией. - звучит как браузер со статическими веб-страницами...   -  person Fildor    schedule 06.05.2020
comment
Я до сих пор не понимаю... Извините, я новичок в программировании, пытаюсь разобраться,   -  person minglefrog    schedule 06.05.2020
comment
В WPF (как и в других средах пользовательского интерфейса) у вас есть в основном дерево компонентов. Некоторые из них являются компонентами макета, которые управляют размещением других компонентов, другие представляют собой элементы управления, такие как кнопки, текстовые поля и т. д. В коде вы можете взять один из этих узлов в дереве, удалить его и заменить другим. Для пользователя это выглядит так, будто что-то исчезло, а вместо него появилось что-то другое. Итак, вам просто нужно найти правильный макет, создать элементы управления и поменять их местами, как вы хотите. Но:...   -  person Fildor    schedule 06.05.2020
comment
... В первые дни Интернета. Когда по миру еще бродили динозавры и резиновые сапоги делали из дерева... ;) - HTML и браузеры, которые его отображали, были изобретены. Его назначение: Отображение информации. Но еще: у вас будут ссылки, которые при нажатии перемещаются по представлению для отображения другого набора информации... звучит знакомо? (Извините за веселье. Сижу в карантине... но серьезно: подумайте о разметке.) WPF кажется мне своеобразным выбором, учитывая требования.   -  person Fildor    schedule 06.05.2020
comment
Спасибо, Филдор, это было действительно полезно! Не беспокойтесь о забавном аспекте этого, мне нужно что-то из этого, иначе изучение программирования будет болезненным! Что я обнаружил, проведя небольшое исследование на YouTube, так это то, что я могу добиться того, чего хочу, с помощью просмотров, поэтому мне просто нужно научиться позволять пользователю переключать их, и я буду готов :)   -  person minglefrog    schedule 06.05.2020


Ответы (1)


Вы можете создать Frame в своем MainWindow и отображать разные страницы.

Рамка XAML:

<Frame x:Name="MainFrame" NavigationUIVisibility="Hidden" />

После этого вы создаете новый Page-Control и переходите к нему

var page = new CustomerPage();
MainFrame.Navigate(page);
person Thomas Klammer    schedule 06.05.2020