【问题标题】:Navigate to XAML page when tile is pressed按下磁贴时导航到 XAML 页面
【发布时间】:2013-06-20 22:26:19
【问题描述】:

我正在使用 WP8,我想知道在按下应用程序的磁贴时是否可以将用户重定向到自定义页面而不是默认 MainPage。

例如,Toast Notifications 有一个NavigationUri,让您可以在按下它后输入要加载的自定义页面。在瓷砖上,您只能获取该信息而不能设置它。 那么还有其他方法还是我错过了什么?

【问题讨论】:

    标签: c# xaml windows-phone-8 navigation live-tile


    【解决方案1】:

    这篇博文很好地涵盖了这一切:http://blogs.msdn.com/b/ptorr/archive/2010/08/28/redirecting-an-initial-navigation.aspx?wa=wsignin1.0

    基本上这个想法是取消默认导航,然后请求导航到您想要的任何Page

    【讨论】:

    • 它有效,但就像我认为它有问题一样。无法判断我是来自磁贴还是来自应用程序图标。我只希望它在我来自磁贴时重定向。
    【解决方案2】:

    在创建磁贴时,您正在指定要导航到的 URL。只需包含一个附加参数,例如comingFrom 并将其设置为tile - 在视图OnNavigatedTo 中,检查该参数是否存在(QueryString 是您的朋友)。

    如果是 - 您从磁贴导航。如果不是 - 你没有。

    【讨论】:

      【解决方案3】:

      听起来您需要SecondaryTile。如果您愿意,SecondaryTiles 允许您导航到与“MainPage”不同的页面。

      这是一个如何创建辅助磁贴的示例

      ShellTile tileToFind = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("Page2.xaml"));
      if (tileToFind == null) // have not pinned this page yet!
      {
          // Create the tile if we didn't find it already exists.
          var tileData = new StandardTileData
          {
              Title = "Navigate To Page2",
          };
      
          // Create the tile and pin it to Start. This will cause a navigation to Start and a deactivation of our application.
          ShellTile.Create(new Uri("/Page2.xaml", UriKind.Relative), tileData);
      }
      

      这将在开始屏幕上放置一个新图块,当您点击它时,它将导航到第 2 页。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多