SL 5超出浏览器,提升信任 - 从任何本地目录显示PNG

时间:2012-08-29 06:22:12

标签: c# silverlight xaml silverlight-5.0

我的理解是,当我设置SL5来运行OOB并提升信任时,我应该可以对本地系统上的任何目录/文件进行全面开放访问。如果外部系统将png图像文件放入用户的c:\ images文件夹,如何将各种png文件加载到XAML Image元素中?

此行有效:

image.UriSource = new Uri(value as string);

如果我将值设置为“http://blah.com/image1.png”这样的字符串

但如果我尝试将其设置为:

,则会失败
ImageUrl = new Uri(@"C:\images\image3.png")

当它到达

时会被解析为类似“file:/// C:.....”的东西
image.UriSource = new Uri(value as string);

线。

如何在运行OOB提升应用的系统上的任何本地路径中显示SL5中的png文件?

1 个答案:

答案 0 :(得分:1)

如果您正确设置了提升的权限,那么这样的事情应该有效

  var bmp = new BitmapImage();
  var stream = new FileStream(@"c:\dir\folder\image.png", FileMode.Open);
  bmp.SetSource(stream);
  stream.Close();

如果你需要使用uri,这应该有效:

  var bmp = new BitmapImage();      
  var uri = new Uri("c:/dir/folder/image.png");
  bmp.UriSource = uri;

请注意,路径不同。 uri路径需要使用正斜杠。

然后,您可以将图像控件的来源设置为bmp

  image.Source = bmp;

如果您收到“不允许文件操作”例外,则需要仔细检查是否在浏览器外设置中检查了提升权限

项目 - >属性 - > “超出浏览器设置”

选中'需要提升的信任......'