Приложение начинается с Главного Окна. В нём есть 2 кнопки, по нажатии на которые открываются соответствующие страницы:
<Button Background="{DynamicResource Secondary}" Foreground="{DynamicResource Primary}" Content="De/Serialization Library" Grid.Row="1" VerticalAlignment="Center" FontSize="25" HorizontalAlignment="Center" Height="70" Padding="5"/>
<Button Background="{DynamicResource Primary}" Foreground="{DynamicResource Secondary}" Content="Interface Styles Library" Grid.Row="2" VerticalAlignment="Center" FontSize="25" HorizontalAlignment="Center" Height="70" Padding="5" Click="Button_Click"/>
<Frame x:Name="Frame" Grid.RowSpan="3"/>
Здесь, например, по нажатию на вторую кнопку, меняется контент у Frame, накладывая сверху нужную страницу. (Может есть способы лучше?):
private void Button_Click(object sender, RoutedEventArgs e)
{
Frame.Content = new ThemesPage();
}
Также, у ThemesPage.xaml есть кнопка, которая должна вернуть в главное окно для выбора:
<Button Click="Button_Click" Grid.Row="2" Height="45" HorizontalAlignment="Left" Width="80" BorderThickness="2" BorderBrush="{DynamicResource Grid}" Background="{DynamicResource Primary}">
<Image x:Name="Calendar_Icon" Source="/icons/стрелка влеов.png" />
<Button.Style>
<Style TargetType="Button">
<Setter Property="Cursor" Value="Hand" />
</Style>
</Button.Style>
</Button>
<Frame x:Name="Frame" Grid.RowSpan="3" Grid.ColumnSpan="3"/>
Как это следует реализовать нормально? Огромное спасибо, кто может помочь
Frameне лучший выбор для реализации страниц (почему). Заменой будет простой ContentPresenter, который отлично подходит под MVVM (которому вы вроде следуете). Вообще, в MVVM проекте старайтесь не использоватьx:Name(если только не в стилях), и всякие события по типуClick(заменяйте их на команды). – EvgeniyZ May 28 '23 at 23:59