2

我的理解是,当我将 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")

当它碰到

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

线。

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

4

1 回答 1

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;

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

项目 -> 属性 -> '浏览器设置不足'

选中“需要提升信任...”

于 2012-08-29T06:33:04.453 回答