1

介绍:

亲爱的程序员们好日子!我环顾四周,并不太能够找到我的简单问题的答案,尽管有些问题确实回答了我的问题,但是它们似乎对我来说是先进的,所以我在这里打印我的简单情况。

问题:

我想更改BackgroundImagePictureBox的图像,这就是我这样做的方式:

PictureBox.Image = new Bitmap(@"C:\Users\Ailayna\documents\visual studio 2012\Projects\FormCritterTalking\FormCritterTalking\Character Pictures\CharacterNormal.png");

这张图片位于我的一个项目文件夹中,有些如何写图片的整个路径对我来说没有逻辑意义,因为我已将所有需要的图片包含在项目中,在特定项目的文件夹中,我想知道是否有更有效的方法改变图片而不是指定图片所在位置的整个路径?

有没有办法使用代码直接访问我的项目图片所在的文件夹,例如:PictureBox.Image = FolderName.PictureName;

我想知道你们是如何以更有效和整洁的方式做到这一点的?另一件事是,我总是要说“新位图”吗?可以是别的吗?

4

3 回答 3

1

我不知道 WPF 中有任何 PictureBox 控件,但如果您正在 WPF 中寻找相同的控件,您可以在 XAML 中这样做:

<Image Source="/MyProject.UI.Common;component/Images/Cut.png"/>

在这里,您的图像位于“图像”文件夹中。

于 2013-09-10T10:19:37.460 回答
1

有没有办法使用代码直接访问我的项目图片所在的文件夹,例如:PictureBox.Image = FolderName.PictureName;

就在这里。这叫资源。在您的项目中选择属性,然后选择资源。添加图片。访问它:

yourProjectName.Properties.Resources.imageName 

但是我建议使用流来访问图像。这是正确的方法,尤其是在位图的情况下。之后不要忘记处理它。在这里查看我的答案如何做到这一点。

于 2013-09-10T11:10:50.053 回答
0

免责声明:由于您直接从硬盘驱动器加载图片(并且我假设它正在工作)我猜我们正在谈论一个 WinForms 项目。

有许多选项可供您选择。

其中最简单的可能是获取当前的应用程序程序集文件夹并使用它:

如何获取代码所在程序集的路径?

var dir = AppDomain.CurrentDomain.BaseDirectory;

图像应与可执行文件一起复制。然后您可以使用上面的代码来获取当前目录,或者您可以尝试依赖相对路径(从可执行文件所在的位置到图像)。

另一种选择是将图片作为资源添加 - 这些将成为您的应用程序的一部分,但读取它们的过程有点复杂。

于 2013-09-10T10:20:57.373 回答