2012-01-09 76 views
0

我是silverlight中的新手,面临从一个页面到另一个页面的导航问题。 这是我的场景内容框架导航无法正常工作 - silverlight 4

我有一个名为page1.xaml的页面。在这个页面中,我放置了一个导航框架并在其中加载了login.xaml页面。

现在,在按钮点击(成功登录),我需要移动到page2.xaml(这是另一种母版页),它还包含另一个框架,我需要最初加载,myaccount.xaml页面。

现在,我到目前为止所做的是。 在App.xaml中页,

private void Application_Startup(object sender, StartupEventArgs e) 
{ 
Panel grid = new Grid(); 
grid.Children.Add(new MasterSimple()); 
this.RootVisual = grid;  
} 

上面的代码,因为我想改变根从视觉的Page1.xaml到page2.xaml

现在在的Page1.xaml,这里是我的框架

<navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle2}" 
        Template="{StaticResource CustomTransitioningNavFrame}" Margin="0,8,0,0" Grid.Row="1" VerticalAlignment="Top" Height="270" Width="640"> 
<navigation:Frame.UriMapper> 
<uriMapper:UriMapper> 
<uriMapper:UriMapping Uri="/{pageName}" MappedUri="/{pageName}.xaml"/> 
</uriMapper:UriMapper> 
</navigation:Frame.UriMapper> 
</navigation:Frame> 

和上的Page1.xaml构造,

this.ContentFrame.Navigate(new Uri("/Loginnew", UriKind.Relative)); 

所以上面的代码,示出了我在框架中使用Loginnew.xaml我的page1.xaml页面。这很好。 现在在loginnew.xaml页面中,我有一个按钮及其点击需要导航到page2.xaml页面。我写了一篇关于按钮下面的代码,点击

MasterTest2 currentPresentationPage = new MasterTest2(); 

(App.Current.RootVisual as Panel).Children.Clear(); 
(App.Current.RootVisual as Panel).Children.Add(currentPresentationPage); 

而且page2.xaml页面上,我有这个框

<navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}" 
          Navigating="ContentFrame_Navigating" Template="{StaticResource FrameControlTemplate1}"> 
</navigation:Frame> 

和它的构造,

ContentFrame.Navigate(new Uri("/myaccount", UriKind.Relative)); 

这是我的结构该程序。

现在我的问题是,当我点击登录页面按钮,它显示我page2.xaml页面。但是在page2.xaml页面中,它仅加载Loginnew.xaml页面,它不加载myaccount.xaml页面。 我也标志着,当我浏览到page2.xaml,在地址栏中的URL被改变 http://www.abc.com/test.aspx#Loginnew

是它为什么myaccount.xaml页面没有加载的原因吗?我需要做些什么才能在page2.xaml的框架中加载myaccount.xaml页面?

回答

1
this.ContentFrame.Navigate(new Uri("/Loginnew", UriKind.Relative)); 

我已经将上面的代码从构造函数移动到Frame的加载事件并开始工作。 :)

+2

你不应该添加这个作为一个commt,而是编辑你的原始问题! – 2012-01-11 10:59:25

+0

@Marek Actualy,我看到一个“回答你的问题”的按钮,所以我点击它。你不觉得它的权利?如果不是的话,下次我会照顾的。 – user867198 2012-01-11 12:06:27

+2

@ user867198您一旦找到答案,您绝对应该回答自己的问题。这就是为什么你从我这里得到+1。我只编辑了添加代码格式的答案。 – 2012-01-11 12:14:05