【发布时间】:2016-08-06 04:25:08
【问题描述】:
我有这个代码:
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(525, 50, 96, 96, PixelFormats.Pbgra32);
renderTargetBitmap.Render(/* controlName */);
PngBitmapEncoder pngImage = new PngBitmapEncoder();
pngImage.Frames.Add(BitmapFrame.Create(renderTargetBitmap));
using (Stream fileStream = File.Create(Environment.CurrentDirectory)
{
pngImage.Save(fileStream);
}
它应该从我的 XAML 中获取控制并创建它的“屏幕截图”,然后将其保存到图像文件中。但是无论我尝试将哪个目录传递给File.Create 方法,我都会得到一个System.UnauthorizedAccessException。
如何解决?谢谢。
注意:我曾尝试以管理员身份运行 Visual Studio,但没有成功。
【问题讨论】:
-
您的应用程序没有访问该目录的权限。确保您写入的位置是运行您的应用程序的帐户具有写入权限的位置。
-
错误的完整堆栈跟踪是什么?您是否也尝试过使用
File.WriteAllBytes();方法?尝试将其保存到您登录用户的桌面。 -
@WicherVisser- 我尝试了几个位置,包括“C:”驱动器、桌面以及应用程序本身的目录。
-
@Wjdavis5 - 你能详细说明一下吗?非常感谢你们!
-
@Sipo 详细说明了哪一部分?您可能无法保存到 C 驱动器根目录。但是桌面应该可以正常工作。