页面中的框架中的WPF按钮导航以更改父页面



我是WPF的新手,但目前非常喜欢它。我对要实施的页面导航有一个问题。

我有mainwindow.xaml,其中有一个框架。在启动时,框架加载第1页。第1页中有一个按钮。如果单击按钮,则第二页出现在框架内。但是,我不想要这个。当用户单击第1页的按钮时,我希望整个页面(mainwindow.xaml)导航到第2页。因此,我需要实际的父页面本身才能更改。

我在按钮的点击事件上使用以下代码。我只是不知道如何参考父母页面。

private void Button_Click(object sender, RoutedEventArgs e)
        {
            NavigationService.Navigate(new PageTwoReplacesMainPage());
        }

如果我需要提供更多信息,请告诉我。我希望这是有道理的,任何帮助都将不胜感激。谢谢。

mainwindow.xaml代码是...

<Window x:Class="TestWpfParentNavigation.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TestWpfParentNavigation"
        mc:Ignorable="d"
        Title="MainWindow" MinHeight="500" MinWidth="700" Background="Beige">
    <Grid>
        <StackPanel>
            <Frame x:Name="myMainFrame" NavigationUIVisibility="Hidden" Height="400" Width="600" Margin="0,50,0,0" />
        </StackPanel>
    </Grid>
</Window>

page1.xaml是...

<Page x:Class="TestWpfParentNavigation.PageOneWithButton"
      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" 
      xmlns:local="clr-namespace:TestWpfParentNavigation"
      mc:Ignorable="d" 
      d:DesignHeight="200" d:DesignWidth="300"
      Title="PageOneWithButton" Background="Bisque">
    <Grid>
        <Button Content="Go to the second page" Height="30" Width="150" Click="Button_Click" Margin="10,10,140,160" />
    </Grid>
</Page>

page2.xaml是...

<Page x:Class="TestWpfParentNavigation.PageTwoReplacesMainPage"
      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" 
      xmlns:local="clr-namespace:TestWpfParentNavigation"
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
      Title="PageTwoReplacesMainPage" Background="Aqua">
    <Grid>
    </Grid>
</Page>

我找到了答案。我误解了窗口应该可以正常工作的方式。

要解决我的问题,我做了以下操作:

在mainwindow.xaml中,我创建了一个覆盖整个窗口的框架。然后,我将页面加载到框架中。此页面中有第二帧。在第二帧中,我加载具有按钮的第二页。当我单击按钮时,我现在可以访问第一帧并导航到我想要的页面。这意味着我现在可以解散我的主页概念。

感谢大家尝试提供帮助。您给了我了解我的问题并回答的线索。亲切的问候。我希望这个答案有意义,并帮助其他任何人。

相关内容

  • 没有找到相关文章

最新更新