Не удается неявно преобразовать растровое изображение в изображения или изображения в изображения - PullRequest
0 голосов
/ 12 мая 2019

Я только что написал этот код, чтобы иметь доступ к изображениям

private Bitmap[] hi = { HangmanUrdu.Properties.Resources._4, HangmanUrdu.Properties.Resources._5, HangmanUrdu.Properties.Resources._6, HangmanUrdu.Properties.Resources._7, HangmanUrdu.Properties.Resources._8, HangmanUrdu.Properties.Resources._9, HangmanUrdu.Properties.Resources._10 };

, но когда я хочу увеличить индекс и получить эти изображения в моем графическом окне

// wg is just a counter;
pictureBox1.Image = hi { wg}; i

бросковмне сообщают, что

не может неявно преобразовать растровое изображение в изображения

Я также пытался изменить массив с растрового изображения на изображение, но затем отображается ошибка, из-за которой невозможно преобразовать изображения визображения.

1 Ответ

0 голосов
/ 12 мая 2019

Создайте List<Bitmap> - в качестве поля, здесь - или любой другой тип, который соответствует дизайну (например, свойство класса).
Заполните List<Bitmap> в конструкторе формы объектами Bitmap, необходимыми в этом контексте, создав новый объект Bitmap из объекта ресурса:

private List<Bitmap> hi = null;

public Form1()
{
    InitializeComponent();

    this.hi = new List<Bitmap>()
    {
        new Bitmap(Properties.Resources._4),
        new Bitmap(Properties.Resources._5)
    };
}

Назначение растрового изображения свойству Image элемента управления, когда вам необходимо:

pictureBox1.Image = hi[1];

Вы также можете создать специализированный класс, содержащий эти ссылки, чтобы иметь к ним доступ с различными соглашениями об именах .
Например:

private List<BitmapResource> BitmapResources = null;

public Form1()
{
    InitializeComponent();

    this.BitmapResources = new List<BitmapResource>()
    {
        new BitmapResource(new Bitmap(Properties.Resources._4), "Logo"),
        new BitmapResource(new Bitmap(Properties.Resources._5), "Watermark")
    };
}

internal class BitmapResource
{
    public BitmapResource(Bitmap bitmap, string imageName)
    {
        this.Image = bitmap;
        this.Name = imageName;
    }
    public Bitmap Image { get; private set; }
    public string Name { get; private set; }
}

Затем, когда необходимо:

По индексу:

pictureBox1.Image = BitmapResources[0].Image;

По имени (упрощенно):

pictureBox1.Image = BitmapResources.FirstOrDefault(res => res.Name == "Logo").Image;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...