在 monomac 项目中查找图像文件的路径

发布于 2024-11-15 19:50:20 字数 413 浏览 4 评论 0原文

我对 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

澉约 2024-11-22 19:50:20

您可以使用 NSBundle.PathForResourceAbsolute 方法来定位图像,然后加载它。

You can use the NSBundle.PathForResourceAbsolute method to locate the image, then load it.

话少情深 2024-11-22 19:50:20

在我自己的项目中,我在 Github 上查找了 MonoMac 示例,发现了一个 在运行时加载图像

他们只是简单地调用:

var myImage = NSImage.ImageNamed ("some.png");

我已将我的图像放在我的项目中的子文件夹“/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:

var myImage = NSImage.ImageNamed ("some.png");

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.

自由范儿 2024-11-22 19:50:20

您还可以使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文