c# - 如何使用 Image.FromFile 在 Visual Studio C# Windows 窗体中设置图像
问题描述
所以我正在尝试为我制作的表单应用程序设置自定义图像。我试图定位的图像位于与我的解决方案文件处于同一级别的名为“图像”的文件夹中。解决方案文件是一个 C# windows forms(net core framework)解决方案。这是一个基本的表单应用程序,我想根据用户选择显示图像,但是现在我每次尝试使用以下代码设置图像时都会遇到未处理的异常:
picFood.Image = Image.FromFile("../../Images/burger.jpg");
确切的错误是“System.IO.FileNotFoundException:../../Images/burger.jpg”
在另一个完全不相关的解决方案中,这是可行的。文件夹结构相同。一个名为 Images 的文件夹与 .sln 文件位于同一目录级别,其中保存了图像。它们在我的解决方案资源管理器和所有内容中。我已经用一个“../”尝试过这个,而没有“../”,所以我不知道从这里做什么。
解决方案
具有相对路径的文件相对于应用程序的工作目录打开。
在这种情况下,从 Visual Studio 中启动时,默认设置是默认bin
放置已编译应用程序的文件夹。
因此,如果您的二进制文件位于<project dir>/bin/Debug/App.exe
此路径中,则将解析为<project dir>/Image/burger.jpg
.
如果您更改了构建配置中的某些内容,或者您的应用程序在运行时切换了目录(例如 via Directory.SetCurrentDirectory
),则此路径可能与您预期的不同。
要了解您的问题,我建议您开始查看您的工作目录是什么。您可以通过在您的代码中获得它Directory.GetCurrentDirectory()
。
您还可以使用Path.GetFullPath
.
打印这两个值以查看您的程序尝试从何处加载文件。
请记住,如果您想使用它们,您放在解决方案/项目文件夹中的任何图像文件都需要与您的二进制文件一起复制。
要使用相对路径而不..
可以在编译期间将它们与二进制文件一起复制,请参阅:
VS2010 How to include files in project, to copy them to build output directory automatically during build or publish and Copying Visual Studio project file(s) to output directory during构建如何做到这一点。
推荐阅读
- jquery - html ::-webkit-scrollbar 未通过 jquery 应用
- mysql - 如果列值为 1,则按日期升序排列结果,否则按日期降序排列
- bash - 您将如何在 shell 选择循环中使用管道选项?
- python - 什么时候应该使用 iter 函数?
- llvm - LLVM 不一致的编号方案
- apache - 如何使用 Apache Httpd 为 ws 平衡器配置 http uri 健康检查
- reactjs - 错误:“无法解析模块`./InitialWindowSafeAreaInsets`
- azure - 带有 SDK V12 的 Azure BlockBlob
- wordpress - 如何在我的 wordpress 网站上启用 REST API?
- python - Python 无法使用 subprocess.run 在 Windows 中找到 ssh 二进制文件,即使有 ssh.exe 的完整路径