当前位置:  开发笔记 > 编程语言 > 正文

Silverlight镜像:动态加载URL?

如何解决《Silverlight镜像:动态加载URL?》经验,为你挑选了3个好方法。

我正在修补Silverlight 2.0.

我有一些图像,我目前有一个图像源的静态URL.有没有办法从托管控件的网站的URL路径动态加载图像?

或者,一个配置设置,存储在一个地方,保存URL的基本路径,以便每个图像只保存文件名?



1> Craig Nichol..:

从我收集的内容来看,您并不是想动态地更改图像本身,而是在运行时正确地确定图像的位置.

我相信只需在图片相对URL前加上"../",就可以将您带到应用程序的根目录,而不一定是网站,因为应用程序可能不会托管在网站的根目录中.

如果您的XAP文件位于以下位置:

http://somesite.foo/app1/somethingelse/clientbin/MyFoo.xap

而你试图链接以下图像:

http://somesite.foo/app1/somethingelse/images/a/boo.png

显然,所有相对URI都与XAP文件所在的位置相关(通常是ClientBin文件夹),Silverlight会附加当前的Silverlight客户端命名空间.因此,如果Silverlight控件位于命名空间Whoppa中,则需要将所有图像放在clientbin/Whoppa /目录中.不太方便.

解决方法是使用绝对URI,如下所示:

新的Uri(App.Current.Host.Source,"../ images/a/boo.png");


显然,所有相对URI都与XAP文件所在的位置相关(通常是ClientBin文件夹),Silverlight会附加命名空间.解决方法是绝对如下:new Uri(App.Current.Host.Source,"../ hello.jpg");

2> Aaron Fische..:

在后面的代码或值转换器,你可以做

  Uri uri = new Uri("http://testsvr.com/hello.jpg");
  YourImage.Source = new BitmapImage(uri);



3> Malcolm Swai..:
// create a new image
Image image = new Image();

// better to keep this in a global config singleton
string hostName = Application.Current.Host.Source.Host;                   
if (Application.Current.Host.Source.Port != 80)
    hostName += ":" + Application.Current.Host.Source.Port;

// set the image source
image.Source = new BitmapImage(new Uri("http://" + hostName + "/cute_kitten112.jpg", UriKind.Absolute));  


插入好的图像文件名:D
推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有