我在大学的最后一个项目我正在使用asp.net mvc3进行开发,并使用silverlight进行矢量图形处理。
我将silverlight代码作为字符串/ xml存储在数据库中,我希望能够动态操作它(更改比例等)并在我的aspx视图中显示它。我不希望也不能使用文件,因为可伸缩性问题(会有很多问题)以及可能将应用程序移植到云端(Azure)。
基本上我想构建一个控制器,它将从数据库中获取原始xaml代码并显示它。我在网上找到的所有解决方案都有两个对我没用的选项:
http://msdn.microsoft.com/en-us/library/cc189044(VS.95).aspx - 包括手动创建整个dom对象并将其集成到现有的silverlight页面中,我没有
http://visualstudiomagazine.com/articles/2008/01/21/using-inline-xaml-with-silverlight-listing-2.aspx - 在html中使用嵌入式标题 - 再次不是实际的..
也许有人可以为我的问题建议一个实用的解决方案
答案 0 :(得分:0)
我建议您花一些时间详细检查如何使用Silverlight导航框架。
我认为您应该能够使用Frame
元素将您自己的INavigationContentLoader
实现分配给其ContentLoader
属性,并将您自己的衍生工具分配给UriMapperBase
已分配到UriMapper
属性。
然后你会使用这样的网址: -
http://yoursite.com/yourHostController#/yourXamlController/someReference
您将有两个视图,“yourHost”只会生成HTML,以便托管您将构建的Silverlight应用程序。 “yourXaml”视图只会提供原始Xaml。
您的Uri映射器将获取#之后提供的相对URL(这是Silverlight应用程序内部导航的工作原理)并创建一个可以指向您的Xaml控制器的Uri。
然后,INavigationContentLoader
的实现将从Uri中获取Xaml并加载它。
假设Xaml包含使用“/ yourXamlController / otherReference”等网址的超链接。您应该能够在不重新加载Silverlight应用程序的情况下浏览存储的Xaml。一切都将是关于引用和下载新的Xaml块。