我的理解是,当我将 SL5 设置为运行 OOB 并提高信任度时,我应该可以广泛访问本地系统上的任何目录/文件。如果外部系统将 png 图像文件放入用户的 c:\images 文件夹中,我如何才能将各种 png 文件加载到 XAML 图像元素中?
这一行有效:
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 文件?
如果您正确设置了提升的权限,这样的事情应该可以工作
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;
如果您收到“不允许文件操作”异常,您需要仔细检查是否已在浏览器外设置中选中提升的权限
项目 -> 属性 -> '超出浏览器设置'
选中“需要更高的信任...”
我是一名优秀的程序员,十分优秀!