WPF C#框架导航:从已导航的页面进行导航

3
我有一个窗口和一个框架在这个窗口里。框架导航到一个页面,在该页面中我有一个按钮。页面是动态创建的,因此我希望在页面中添加按钮的onclick事件,以便允许我在窗口的框架中导航到新页面。 我正在谷歌上查阅自定义事件,以便我可以在与窗口中的事件相关联的页面中引发事件。 请问是否需要帮助?
2个回答

2
我猜这里的情景是他有一个带有框架的窗口,并且导航方法也在这个窗口中。
您可以将您的窗口传递给这些动态创建的页面。
//Main Window
public class MainWindow
{
   public void NavigatePage(Page page)
   {
      YourFrameInstance.Navigate(page)
   }
 }

//Your Page
public class Page
{
    private readonly Window _mainWindow;

    public Page(Window mainWindow)
    {
       _mainWindow = mainWindow;
    }

    void Button_Click(object sender, RoutedEventArgs e)
    {
        var page = new Page(_mainWindow);
        _mainWindow.NavigatePage(page);
    }
 }

2
如果我理解正确,您想要使用一个事件从一页导航到另一页?
如果是这样,请查看以下链接 - 这些将为您提供更好的了解如何通过WPF应用程序进行导航,并提供示例和示例应用程序。 如何构建、管理和导航WPF应用程序的用户界面 简单导航 这就是我实现它的方式。在您的应用程序的代码后台中,像这样做一些事情,以帮助您为单击事件导航到下一页;
private void btnClick_HomeClick(object sender, RoutedEventArgs e)
{
     FrameContent.Navigate(new ExampleView()); //FrameContent is the name given to the frame within the xaml.
}

希望这有所帮助!

嗨Gregory,谢谢你的回答。我需要在一个类中通过事件从一个页面导航到另一个页面。在这个类中,我给一个按钮分配了一个onclick事件,并且在这个事件中,我必须在我的主窗口中引发一个包含框架的事件!希望你能帮助我! - loris91
抱歉,我不太明白你想说什么。我建议你查看我提供的那两个链接或尝试实现我为你创建的代码片段。如果我理解你的意思正确,你有多个页面需要导航。如果是这种情况,你可以使用“菜单”或“功能区”,并使用事件来浏览每个页面。希望这能帮到你。 - greg
我已经解决了这个问题,参考了这篇文章:https://dev59.com/kVzUa4cB1Zd3GeqP4pns - loris91
想指出的是,根据页面上的内容以及导航调用的频率,这可能会导致内存泄漏,因为在每个导航中创建该类的新实例而没有处理它。我更喜欢使用 new Uri("ExampleView.xaml", UriKind.Relative),因为它似乎能够自我清理。 - Wobbles

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接