【问题标题】:How to determine frame content如何确定帧内容
【发布时间】:2018-02-26 16:59:33
【问题描述】:

我使用MyFrame.Navigate(typeof(Page2)) 设置框架内容。如何获取页面当前显示的信息。我想做地址栏之类的东西。

【问题讨论】:

  • OP 您接受的答案实际上与您所要求的完全不同。 “如何获取当前正在显示的页面的信息”与尝试获取当前在框架上显示的页面的实例相去甚远。
  • 如果您使用与当前显示在框架上的类型不同的类型执行投射,则它不会起作用。因此,您需要确切知道当前正在显示的页面的类型,这与您的问题的前提相违背。如果这是您从一开始的意图,我建议您将问题更新为更符合接受的答案的内容。
  • @AndréB 我也同意。回顾所提出的问题,我认为对需要解决的问题进行更多澄清会有所帮助。阅读最后一句话,如果 OP 想要创建类似地址栏的东西,页面本身的实例不会给你太多,除非结果是从页面中获取一个元素来更新地址栏。在这种情况下,我总是建议不要这样做,并指出使用 MVVM 模式并在视图模型和服务中访问此信息的方向,而不是 XAML。

标签: c# uwp navigation frame


【解决方案1】:

通过查看 Frame 实例的 CurrentSourcePageTypeSourcePageType 属性,您可以获得对当前显示在框架上的类型的引用。

他们之间的区别由微软解释如下:

CurrentSourcePageType 和 SourcePageType 通常是相同的值。 但是,如果框架调用 Navigate 并且导航仍在 进度,CurrentSourcePageType 是导航前的值 SourcePageType 是导航到的值。

【讨论】:

    【解决方案2】:

    如果您尝试从 Frame 中获取 Page2 的实际实例,您可以按如下方式进行:

    var frame = MyFrame;
    var page2 = frame.Content as Page2;
    

    Frame 的 content 属性是代表当前显示内容的 UI 元素。

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2015-02-15
      • 2015-02-17
      • 2014-12-16
      • 2020-07-14
      • 1970-01-01
      • 2012-02-26
      • 1970-01-01
      相关资源
      最近更新 更多