Silverlight 使用超链接从子控件更改父导航框

Silverlight 使用超链接从子控件更改父导航框,silverlight,hyperlink,navigation,Silverlight,Hyperlink,Navigation,我想我可能在措辞上有困难(对于silverlight及其控件来说是新手),但总体目标和问题是: 我已经用“MainPage.xaml”创建了一个silverlight应用程序。页面中有一个网格,它有两个基本控件:一个是导航:框架[我们可以像微软在演示中那样称之为ContentFrame],另一个是我创建的控件,由页面顶部的横幅和简单导航组成[为了这个解决方案,可以称之为BannerControl] BannerControl中有指向(或应该指向)我的项目中各个页面的链接。他们点击横幅中的链接,然

我想我可能在措辞上有困难(对于silverlight及其控件来说是新手),但总体目标和问题是:

我已经用“MainPage.xaml”创建了一个silverlight应用程序。页面中有一个网格,它有两个基本控件:一个是导航:框架[我们可以像微软在演示中那样称之为ContentFrame],另一个是我创建的控件,由页面顶部的横幅和简单导航组成[为了这个解决方案,可以称之为BannerControl]

BannerControl中有指向(或应该指向)我的项目中各个页面的链接。他们点击横幅中的链接,然后主页就会填充ContentFrame(或者我希望如此)。情况似乎并非如此

我首先想到的是控件之间的关系以及BannerControl作为一个孩子,不可能看到NavigationFrame。也许是我对这一切应该如何运作的拙劣解释给了我问题,但不管怎样,我都处在一个路障上

有没有人能给我一些指导,告诉我怎样才能让链接正常工作

MainPage.xaml:

<Grid x:Name="LayoutRoot" Style="{StaticResource LayoutRootStyle}">
    <Grid x:Name="ContentRoot" Style="{StaticResource ContentRootStyle}">
        <StackPanel>
            <local:NavigationBar/>
            <navigation:Frame x:Name="ContentFrame" Source="/Pages" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed" Margin="25,5">
                <navigation:Frame.UriMapper>
                    <uriMapper:UriMapper>
                        <uriMapper:UriMapping Uri="" MappedUri="/Pages/Welcome.xaml"/>
                        <uriMapper:UriMapping Uri="/IT/{pageName}" MappedUri="/pages/IT/{pageName}.xaml"/>
                        <uriMapper:UriMapping Uri="/RM/{pageName}" MappedUri="/pages/IT/{pageName}.xaml"/>
                        <uriMapper:UriMapping Uri="/RSG/{pageName}" MappedUri="/pages/IT/{pageName}.xaml"/>
                        <uriMapper:UriMapping Uri="/RSM/{pageName}" MappedUri="/pages/IT/{pageName}.xaml"/>
                        <uriMapper:UriMapping Uri="/{pageName}" MappedUri="/pages/{pageName}.xaml"/>
                    </uriMapper:UriMapper>
                </navigation:Frame.UriMapper>
            </navigation:Frame>
        </StackPanel>
    </Grid>
</Grid>

横幅内的链接:

<StackPanel x:Name="NavBarSubNavRSG" Style="{StaticResource NavBarSubNavStyle}" 
            Visibility="Collapsed">
    <Rectangle Style="{StaticResource NavBarSubNavPadStyle}"/>
    <HyperlinkButton x:Name="NavBarSubRSGOneLink" Content="RSG One" 
                     Style="{StaticResource NavBarSubNavLinkStyle}"/>
    <Rectangle Style="{StaticResource NavBarSubNavRectStyle}"/>
    <HyperlinkButton x:Name="NavBarSubRSGTwoLink" Content="RSG Two" 
                     Style="{StaticResource NavBarSubNavLinkStyle}"/>
    <Rectangle Style="{StaticResource NavBarSubNavRectStyle}"/>
    <HyperlinkButton x:Name="NavBarSubRSGThreeLink" Content="RSG Three" 
                     Style="{StaticResource NavBarSubNavLinkStyle}"/>
    <Rectangle Style="{StaticResource NavBarSubNavRectStyle}"/>
    <HyperlinkButton x:Name="NavBarSubRSGFourLink" Content="RSG Four" 
                     Style="{StaticResource NavBarSubNavLinkStyle}"/>
</StackPanel>

您需要设置HyperlinkButton的NavigateUri和TargetName属性。NavigateUri指向页面的Uri,TargetName是框架的x:Name:

<sdk:Frame 
   x:Name="ContentFrame"/> 

...

<HyperlinkButton 
    x:Name="NavBarSubRSGFourLink" 
    Content="RSG One" 
    NavigateUri="RSGOne.xaml" 
    Target="ContentFrame"/>

...