我新建了一个项目,里面有已经有一个页面(Page)了,如果需要跳转到另一页面,就需要在项目上点右键,找到 "Add Silverlight Link "
然后就会弹出下面的窗口
如果要再加入一个页面就点击下面的单选按钮.
这时候会新建一个用户控件出来.
如果要第一个页面跳转到第二个页面,只需要在第一个页面加入如下代码:
HtmlWindow html = HtmlPage.Window;
html.Navigate(new Uri("http://localhost:4535/sildemo_Web/otherTestPage.aspx"));
将第二个页面的url指定进来! (http://localhost:4535/sildemo_Web/otherTestPage.aspx)
以下为个人理解:
当时我也没想明白为什么要这么做,后来仔细看了一下代码,
public partial class Page : UserControl{
…….
}
代码里面是我们的sl是继承自UserControl,而不是继承自Page或者Canvas.
那么从逻辑上来讲,它既然是派aspx页面下的一个控件,那么它就会理由去负责页面的导航问题,因为它至少应该属于Frame(框架)级别的类或者是当前浏览器的Page(页面)级的类,而这里它只是一个控件,因此,它进行跳转需要能过别的类来完成这样的工作.
这样我们就可以很好理解为什么没看到我们的(Page : UserControl),page对象没有包含跳转.或者导航这样的方法.
html.Navigate(new Uri("otherTestPage.aspx",UriKind.Relative));
这样,就可以使用相对路径了