无法加载uri的内容

时间:2012-06-17 12:59:47

标签: silverlight navigation uri

我尝试在student.xaml页面上的mainpage.xaml中添加一个超链接。 学生/ xaml页面位于视野/学生/ 因为“关于页面”正在运行,而且学生页面不希望

超链接按钮的代码:

<HyperlinkButton x:Name="Link2" Style="{StaticResource LinkStyle}" 
                                     NavigateUri="/About" TargetName="ContentFrame" Content="{Binding Path=Strings.AboutPageTitle, Source={StaticResource ApplicationResources}}"/>
            <Rectangle x:Name="Divider2" Style="{StaticResource DividerStyle}"/>

            <HyperlinkButton x:Name="Link3" Style="{StaticResource LinkStyle}" 
                                     NavigateUri="Views/Student" TargetName="ContentFrame" Content="{Binding Path=Strings.StudentPageTitle, Source={StaticResource ApplicationResources}}"/>

uri映射代码:

<navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}" 
                              Source="/Home" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed">
                <navigation:Frame.UriMapper>
                  <uriMapper:UriMapper>
                    <uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>
                        <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
                        <uriMapper:UriMapping Uri="/Student/{pageName}" MappedUri="/Views/Student/{pageName}.xaml"/>
                    </uriMapper:UriMapper>
                </navigation:Frame.UriMapper>
            </navigation:Frame>   

private void ContentFrame_Navigated(object sender, NavigationEventArgs e)
{
    foreach (UIElement child in LinksStackPanel.Children)
    {
        HyperlinkButton hb = child as HyperlinkButton;
        if (hb != null && hb.NavigateUri != null)
        {
            if (hb.NavigateUri.ToString().Equals(e.Uri.ToString()))
            {
                VisualStateManager.GoToState(hb, "ActiveLink", true);
            }
            else
            {
                VisualStateManager.GoToState(hb, "InactiveLink", true);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您似乎忘记了“Link3” - “超链接”中的“/”。 您应该用NavigateUri =“/ Views / Student”

替换NavigateUri =“Views / Student”

但是:  总而言之,你的UriMapping对我来说有点奇怪。 如果您单击About-Hyperlink,它将使用映射Uri =“/ {pageName}”并导航到“/Views/About.xaml”

- &GT;如果您要导航到Students.xaml,您应该只使用 NavigateUri =“/ Student”,最终导航到“/Views/Student.xaml”

希望有所帮助;)