INTRO:
亲爱的程序员,祝你好!我环顾四周,无法找到我的简单问题的答案,有些问题确实回答了我的问题,但是它们似乎对我来说是先进的,所以我在这里打印我的简单情况。问题:
我想更改 PictureBox 的 BackgroundImage 或图片,这就是我如何做到这一点:
PictureBox.Image = new Bitmap(@"C:\Users\Ailayna\documents\visual studio 2012\Projects\FormCritterTalking\FormCritterTalking\Character Pictures\CharacterNormal.png");
这张照片位于我的一个项目文件夹中,有些如何编写整个画面路径对我来说没有任何逻辑意义,因为我已将所有需要的图片包含在项目中,在特定项目的文件夹中,我想知道是否有更多改变图片的有效方法,而不是指定图片所在的整个路径?
有没有办法直接访问我的项目图片所在的文件夹,例如:PictureBox.Image = FolderName.PictureName;
我想知道你们是如何以更有效和更整洁的方式做到这一点的?另一件事是,我是否总是要说“新位图”?它可以是其他东西吗?
答案 0 :(得分:1)
我不知道WPF中有任何PictureBox控件,但是如果你在WPF中寻找相同的东西你可以在XAML中这样做:
<Image Source="/MyProject.UI.Common;component/Images/Cut.png"/>
此处您的图片位于“图片”文件夹中。
答案 1 :(得分:1)
有没有办法直接访问我的项目图片所在的文件夹 使用代码定位,例如:PictureBox.Image = FolderName.PictureName;
是的,有。它被称为资源。 在项目中选择属性,然后选择资源。添加图片。 访问它:
yourProjectName.Properties.Resources.imageName
但是我建议使用流来访问图像。这是正确的方法,特别是在位图的情况下。不要忘记事后处理它。 See my answer here如何做到这一点。
答案 2 :(得分:0)
免责声明:由于您直接在硬盘上加载图片(我假设它正在运行),我猜我们正在谈论WinForms项目。
您可以选择多种选项。
最简单的可能是获取当前的应用程序组件文件夹并使用它:
How do I get the path of the assembly the code is in?
var dir = AppDomain.CurrentDomain.BaseDirectory;
图像应与可执行文件一起复制。然后你可以使用上面的代码来获取当前目录,或者你可以尝试依赖相对路径(从可执行文件所在的位置到图像)。
另一个选择是将图片添加为资源 - 这些将是您的应用程序的一部分,但阅读它们的过程有点复杂。