我正在尝试使用frame
来托管不同类型的xaml页面。用户将选择要加载的页面
我想将一个带有非默认构造函数的页面加载到Frame中。
我在MSDN上找到了以下代码:
void hyperlink_Click(object sender, RoutedEventArgs e)
{
// Instantiate the page to navigate to
PageWithNonDefaultConstructor page = new PageWithNonDefaultConstructor("Hello!");
// Navigate to the page, using the NavigationService
this.NavigationService.Navigate(page);
}
上面的代码替换了当前显示的页面,但是我想将它加载到当前页面上的特定框架元素中。
<Frame Source="Default.xaml" />
如何做到这一点?
答案 0 :(得分:2)
您可以使用Frame of Frame而不是Source来解决问题。
//xaml
<Page x:Class="WpfApplication1.Something"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow">
<StackPanel>
<Button Click="Button_Click" Content="click"/>
<Frame Content="{Binding}"/>
</StackPanel>
</Page>
//codebehinde
private void Button_Click(object sender, RoutedEventArgs e)
{
// Instantiate the page to navigate to
Page1 page = new Page1("Hello!");
this.DataContext = page;
}