我正在构建一个应用程序,我必须在几页之间导航。这是我试图设置它的方式。我希望此导航通过我在页面上的按钮工作,而不在顶部显示左/右箭头导航按钮。我的主窗口设置如下所示,我所拥有的是DockPanel中的Frame
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<Frame x:Name="_mainFrame" />
</DockPanel>
</Window>
在这个构造函数中,我加载了我的第一页。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
_mainFrame.Navigate(new Page1());
}
}
以下是我的page1的设置方式。
<Page x:Class="WpfApplication1.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="Page1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="5*" />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Row="0">This is Page 1</Label>
<Button Grid.Row="1" Content="Next" Click="Next_Click" />
</Grid>
当用户点击“下一步”按钮时,我想转到Page2。所以我可能想要下一个按钮处理程序中的如下内容。
private void Next_Click(object sender, RoutedEventArgs e)
{
_mainFrame.Navigate(new Page2());
}
我不知道如何引用这个!mainFrame对象。你能建议任何更好的方法吗?
答案 0 :(得分:0)
您可能想尝试将StartupUri放在主窗口中以获取默认页面。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
StartupUri="Page1.xaml">
<DockPanel>
<Frame x:Name="_mainFrame" />
</DockPanel>
</Window>
然后在你的Page1.xaml内添加以下NavigationUri以进入下一页/上一页。
<Page x:Class="WpfApplication1.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="Page1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="5*" />
<RowDefinition />
</Grid.RowDefinitions>
<Label Grid.Row="0">This is Page 1</Label>
<!-- this should replace your button navigation -->
<Hyperlink NavigateUri="Page2.xaml">
Navigate to Another Page
</Hyperlink>
</Grid>
超链接将自动查找父级或间接父级以查找导航主机(框架)。