Как заменить содержимое Frame

124
22 июня 2019, 21:50

Есть окно "MainWindow", в нем Frame "Go" в который при запуске окна помещается "Page1", в "Page1" еще один Frame "Main", в котором лежит "Page2".

Как при нажатии кнопки в "Page2" поместить Page3 в Frame "Go", при этом не создавая нового "MainWindow" ?

Answer 1

Использовать схему загрузки Page с помощью <Frame Element Name> .NavigationService.Navigate(pageClassHandle);

Сравнивать текущую загруженную страницу можно таким способом:

MainWindow.cs

 Type t = 
  ContentFrame.NavigationService.Content.GetType();
 if (t == typeof(PageHandle))
     ...

и в xaml добавить примерно следующее:

MainWindow.xaml

<StackPanel Orientation="Vertical">
    <Frame
         x:Name="ContentFrame"
         Margin="0,0,0,0"
         Width="{Binding ActualWidth, ElementName=MainWindow, Mode=OneWay}"
         NavigationUIVisibility="Hidden" />
</StackPanel>

MainWindow - условно главное окно WPF приложения.

READ ALSO
BitmapImage не работает с Binding?

BitmapImage не работает с Binding?

Интересная ситуация, при попытке установки значения для BitmapImageUriSource через привязку данных, вот так:

127
Как присвоить переменную типа Camera через метод Start()

Как присвоить переменную типа Camera через метод Start()

В скрипте есть переменная : public Camera PlayerCam; Через метод public void Start() {

105
SearchBar в С#(mvvm)

SearchBar в С#(mvvm)

Хочу сделать searchbar для поиска людей по имени или фамилии, но всё никак не получаетсяВот код

113