在 monomac 项目中查找图像文件的路径
我对 mono 和 monomac 很陌生,我遇到了一些我希望应该很容易修复的问题。
在我的应用程序中,我想在运行时更改一些图像,因此我在项目根目录中创建了一个“图像”文件夹,其中包含我的图片。 但是当我尝试更改代码中的图像时,找不到图像,所以我认为我写了错误的路径。
我尝试获取这样的图像:
NSImage image = new NSImage("Images/image2.jpg"); // I tried with different paths but nothing changed...
pic1.Image = image;
如果我使用图像的完整路径,一切正常,但我需要使用相对路径。 我应该如何获得正确的相对路径?
我正在使用 Monodevelop。
谢谢。
I am new to mono and monomac and i got stuck with something that i hope should be really easy to fix.
In my application i want to change some images at runtime, so i created an "Images" folder with my pics inside the root of the project.
But when i try to change the image in my code the image can't be found, so i think i'm writing the wrong path.
I try to get the image like this:
NSImage image = new NSImage("Images/image2.jpg"); // I tried with different paths but nothing changed...
pic1.Image = image;
If i use the full path to the image, everything work fine, but i need to use a relative one.
How should i get the right relative path?
I'm using Monodevelop.
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用 NSBundle.PathForResourceAbsolute 方法来定位图像,然后加载它。
You can use the NSBundle.PathForResourceAbsolute method to locate the image, then load it.
在我自己的项目中,我在 Github 上查找了 MonoMac 示例,发现了一个 在运行时加载图像。
他们只是简单地调用:
我已将我的图像放在我的项目中的子文件夹“/Images”内,并且此函数仍然成功加载我的图像。
所以也许这也可以解决您的问题。
In my own project I looked up the MonoMac samples on Github and I found one that also loads images at runtime.
They simply do a call to:
I've placed my images in my project inside a sub folder "/Images" and this function still successfully loads my images.
So maybe this could be a solution to your issue, too.
您还可以使用 System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) 来获取资源路径。
You also use System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) to get resources path.