我只希望后退和前进按钮在我的框架内前后导航。
而不是正常的 Frame.GoBack() 我试过 MyFrame.GoBack() 它识别 MyFrame 但它没有做任何事情....
GoBack() 和 GoForward() 仅在后退/前进导航历史记录中至少有一个条目时才有效。因此,首先使用您的框架导航到其他页面,然后使用 GoBack() 或 GoForward() 向后或向前移动。
根据您的描述,我为您制作了一个样品:
主页.xaml
<StackPanel>
<Frame x:Name="MyFrame" Margin="30,50,30,30" Width="500" Height="300" IsTapEnabled="True">
</Frame>
<CommandBar Background="Transparent" IsOpen="False">
<AppBarButton Icon="Back" Label="Back" Click="AppBarButton_Click"/>
<AppBarButton Icon="Home" Label="Home" Click="AppBarButton_Click"/>
<AppBarButton Icon="Forward" Label="Forward" Click="AppBarButton_Click"/>
</CommandBar>
</StackPanel>
MainPage.xaml.cs
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
MyFrame.Navigate(typeof(Page1));
}
private void AppBarButton_Click(object sender, RoutedEventArgs e)
{
var lable = (sender as AppBarButton).Label;
if (lable == "Back")
{
if (MyFrame.CanGoBack)
{
MyFrame.GoBack();
}
}
else if (lable == "Forward")
{
if (MyFrame.CanGoForward)
{
MyFrame.GoForward();
}
}
else if (lable == "Home")
{
MyFrame.Navigate(typeof(Page1));
}
}
}
Page1.xaml
<StackPanel>
<TextBlock Text="Welcome Page" FontSize="50" Margin="0,20"/>
<Button x:Name="btn2" Content="Open Page Two" Click="btn2_Click"/>
</StackPanel>
Page1.xaml.cs
public sealed partial class Page1 : Page
{
public Page1()
{
this.InitializeComponent();
}
private void btn2_Click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(Page2));
}
}
Page2.xaml
<StackPanel>
<TextBlock Text="Page Two" FontSize="50" Margin="0,20"/>
<Button x:Name="btn2" Content="Open Page Three" Click="btn2_Click"/>
</StackPanel>
Page2.xaml.cs
public sealed partial class Page2 : Page
{
public Page2()
{
this.InitializeComponent();
}
private void btn2_Click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(Page3));
}
}
Page3.xaml
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBlock Text="Page Three" FontSize="50"/>
</Grid>
输出如下所示:
![在此处输入图像描述](https://i.stack.imgur.com/CfTGc.gif)