在Windows 8应用程序中使用Hyperlink NavigateUri在xaml页面之间导航

时间:2014-03-20 16:27:59

标签: windows xaml hyperlink microsoft-metro

在Windows Phone 8应用程序中,可以使用如下所示的超链接在XAML页面之间导航

Hyperlink MyLink = new Hyperlink();
MyLink.NavigateUri = new Uri("/Views/SamplePage.xaml?entryId=" + entryId, UriKind.Relative);

我正在IValueConverter中根据内容创建动态超链接。我将应用程序移植到Windows 8,我无法使用相同的代码,因为Windows 8仅支持使用框架导航

this.Frame.Navigate(typeof运算(的SamplePage));

还有其他方法,我可以使用超链接在Windows 8 metro应用程序中的xaml页面之间导航。

或者有没有办法让IValueConverter中的当前Frame在页面之间导航?

1 个答案:

答案 0 :(得分:2)

听起来你在ValueConverter中导航 - 我个人不会这样做。

使用Frame对象,创建自己的抽象作为服务,或使用行为(您当然可以使用转换器)

        <Grid x:Name="grid5" Grid.Row="1" Grid.Column="2" Background="Purple">
          <TextBlock x:Name="TextBox" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="45" Text="Navigation with param" Margin="0,165,3,165"/>
            <interactivity:Interaction.Behaviors>
              <core:EventTriggerBehavior EventName="Tapped">
                 <core:NavigateToPageAction TargetPage="Behaviors_And_Triggers.NewPage" Parameter="{Binding ElementName=TextBox,Path=Text}"/>
              </core:EventTriggerBehavior>
          </interactivity:Interaction.Behaviors>
        </Grid>

别忘了添加Behaviors SDK扩展程序(Add Reference =&gt; Extensions =&gt; Behaviors)和命名空间:

    xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
    xmlns:core="using:Microsoft.Xaml.Interactions.Core"

注意:Behaviors_And_Triggers。 NewPage =&gt; NewPage是页面的名称!