我在这里发现了这个问题: WPF Navigate Pages from outside frame 但是从未解决过,我有同样的问题和相同的窗口结构:
<DockPanel>
<Frame x:Name="Menu" Source="/Menu.xaml" NavigationUiVisibility="Hidden" />
<Frame x:Name="Content" Source="/Welcome.xaml" NavigationUiVisibility="Hidden" />
</DockPanel>
如您所见,框架包含一些默认页面,菜单框显示菜单按钮:
<Grid>
<Button x:Name="Contact" Click="Contact_Click" />
<Button x:Name="Discussion" Click="Discussion_Click" />
</Grid>
我想要做的是使用菜单中的按钮更改内容中的来源,我已经尝试过:
private void Contact_Click(object sender, RoutedEventArgs e)
{
MainWindow mainWindow = new MainWindow();
mainWindow.Content.NavigationService.Navigate("/Contact.xaml", UriKind.Relative);
}
侧面,您认为将菜单直接放入主窗口而不是将其放在不同的框架中是更好的选择吗?