您的位置:首页 > 编程语言

silverlight3:sivlerlight.net 站点Navigation Framwork示例代码的问题

2010-01-07 00:32 302 查看
今天在timheuer blog上看到这篇文章A guide to Silverlight 3 new features,看到其中关于Navigation Framwork的介绍觉得挺有意思,就点了链接去看video,然后还下载了cs源码,用vs2008打开,居然出现如下错误:An unhandled exception (‘Unhandeld Error in Silverlight Application Navigation is ony supported to relative URIS that are fragments,or begin with ’/',or which contain' ‘;component/’ Parameter name uri at System.Windows.NavigationServic.NagivationCore(Uri uri,)

很是纳闷,我再看一次视频,比较了timeheuer视频里演示的代码与下载的代码,没有发现什么不同.随后我新建一个以silverlight Navigation 为模板的项目,这个新项目可以正常运行,进行对比发现一些不同,所以我马上意识到silverlight.net站点的视频以及示例代码并不是silverlight Rtm,而是silverligh3 beta.

下面的步骤是我将silverlight3 Beta版的navigation framwork 示例代码进行修改以至于能在visual studio 2008 sp1里能正常运行:

1.对于出现错误: An unhandled exception (‘Unhandeld Error in Silverlight Application Navigation is ony supported to relative URIS that are fragments,or begin with ’/',or which contain' ‘;component/’ Parameter name uri at System.Windows.NavigationServic.NagivationCore(Uri uri,)你需要将MainPage.xaml中的tag内容前都加上'/’,App.xmal文件中的uri内容也是如此。

2.编译之后,如果打开浏览器浏览会出现错误如下:An unhandled exception (‘Unhandeld Error in Silverlight Application No XAML was found at the loaction ‘/Home’ .at System.Windows.Navigation.PageResourceContentLoader…

出现这个错误是由与MainPage.xaml中的MainFrame没有指定UriMapper,为MainFrame添加UriMapper="{StaticResource uriMapper}" (uriMapper在App.xaml文件)或者将App.xaml文件中的uriMapper内容加入到MainFrame,成为它的子元素,用navigation framwork 模板创建的项目MainPage就是那样写的。

3.做完这个步骤,示例程序可以运行,但是细心的你会发现原本正常的情况系浏览器里的uri是会变化的诸如http://localhost:27637/NavigationSampleTestPage.html/#Homehttp://localhost:27637/NavigationSampleTestPage.html/#About,而且ie的前进后退按钮都不可用,所以还需要在对应的web项目中html的iframe添加 id=”_sl_historyFrame”,编译完重新运行,上述的2个问题都正常,最后就是Customer.xmal中的一个错误,原因同步骤一,在uri前加上'/’.

做完这些silverlight.net上关于navigation framework的示例代码才是silverlight3 rtm中的正确实例,我今天发现问题后在互联网搜了很久几乎没有人提到这个,不过这的却是个比较大的失误,就连timeheuer自己也没意识到。不过还是希望之后有或学习学习navigation framework的朋友可以不需在这里有疑惑
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐