【问题标题】:WPF C# Frame Navigation from page navigatedWPF C# Frame Navigation 从页面导航
【发布时间】:2020-04-22 20:56:15
【问题描述】:

我在这个窗口中有一个窗口和一个框架。 框架在页面中导航并进入此页面,我有一个按钮。 该页面是动态创建的,所以我想在页面中添加一个按钮 onclick 事件,允许我将新页面导航到窗口框架中。

我正在谷歌上写关于自定义事件的文章,它可以允许我在与窗口中的事件相关的页面中引发事件。

你能帮帮我吗?

【问题讨论】:

    标签: c# wpf c#-4.0 visual-studio-2012


    【解决方案1】:

    如果我理解正确,您想使用 event 从一个页面导航到另一个页面吗?

    如果是这种情况,请查看下面的链接 - 这些链接将使您更好地了解如何在 WPF 应用程序中导航,并提供示例和示例应用程序。

    How to Build, Manage and Navigate the User Interface of a WPF Application

    Simple Navigation

    这就是我实现它的方式。在应用程序背后的代码中,执行以下操作以帮助导航到单击事件的下一页;

    private void btnClick_HomeClick(object sender, RoutedEventArgs e)
    {
         FrameContent.Navigate(new ExampleView()); //FrameContent is the name given to the frame within the xaml.
    }
    

    希望这会有所帮助!

    【讨论】:

    • 嗨,格雷戈里,感谢您的回答,我应该从一页导航到另一页,但将事件归为一类。在一个类中,我将一个事件 onclick 分配给一个按钮,在这种情况下,我必须在 mi 主窗口中引发一个包含框架的事件!希望你能帮帮我!
    • 对不起,我不太明白你想说什么。我建议您浏览我建议的这两个链接,或者尝试实现我为您创建的代码 sn-p。如果我理解正确,您有多个页面要导航到。如果是这种情况,您可以使用MenuRibbon 并使用事件来浏览每个页面。希望这会有所帮助。
    • 我已经解决了这个stackoverflow.com/questions/7901007/…
    • 想要指出的是,根据页面上的内容以及您调用导航的频率,这可能会导致内存泄漏,因为您正在为每个导航创建该类的新实例而不处理它。我更喜欢使用new Uri("ExampleView.xaml", UriKind.Relative),因为它似乎会自行清理。
    【解决方案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);
        }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多