Подтвердить что ты не робот

Как сделать прозрачный прозрачный?

Я делаю приложение в С#.NET. У меня есть 8 ящиков с картинками. Я использовал PNG-изображения с прозрачным фоном, но в моей форме он не прозрачен, когда он появляется над другим изображением.

Я использую Visual Studio 2012. Это скриншот моей формы:

Screenshot of Form

4b9b3361

Ответ 1

Один из способов сделать это - изменить родительский элемент перекрывающегося окна изображения на PictureBox, над которым он притирается. Поскольку дизайнер Visual Studio не позволяет добавлять PictureBox в PictureBox, это нужно сделать в коде (Form1.cs) и в функции Intializing:

public Form1()
{
    InitializeComponent();
    pictureBox7.Controls.Add(pictureBox8);
    pictureBox8.Location = new Point(0, 0);
    pictureBox8.BackColor = Color.Transparent;
}

Просто измените имена полей изображений на то, что вам нужно. Это должно возвратиться:

enter image description here

Ответ 2

GameBoard - это управление типом DataGridView; Изображение должно быть типом PNG с прозрачным фоном альфа-канала;

        Image test = Properties.Resources.checker_black;
        PictureBox b = new PictureBox();
        b.Parent = GameBoard;
        b.Image = test;
        b.Width = test.Width*2;
        b.Height = test.Height*2;
        b.Location = new Point(0, 90);
        b.BackColor = Color.Transparent;
        b.BringToFront();

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

Ответ 3

Попробуйте использовать ImageList

ImageList imgList = new ImageList;

imgList.TransparentColor = Color.White;

Загрузите изображение следующим образом:

picturebox.Image = imgList.Images[img_index];

Ответ 4

У меня была аналогичная проблема. Вы не можете сделать Transparent picturebox легко, например изображение, показанное в верхней части этой страницы, потому что объекты .NET Framework и VS.NET созданы INHERITANCE! (Используйте родительское свойство).

Я решил эту проблему на RectangleShape, и с приведенным ниже кодом я удалил фон, если разница между PictureBox и RectangleShape не важна и не имеет значения, вы можете легко использовать RectangleShape.

private void CreateBox(int X, int Y, int ObjectType)
{
    ShapeContainer canvas = new ShapeContainer();
    RectangleShape box = new RectangleShape();
    box.Parent = canvas;
    box.Size = new System.Drawing.Size(100, 90);
    box.Location = new System.Drawing.Point(X, Y);
    box.Name = "Box" + ObjectType.ToString();
    box.BackColor = Color.Transparent;
    box.BorderColor = Color.Transparent;
    box.BackgroundImage = img.Images[ObjectType];// Load from imageBox Or any resource
    box.BackgroundImageLayout = ImageLayout.Stretch;
    box.BorderWidth = 0;
    canvas.Controls.Add(box);   // For feature use 
}

Ответ 5

Одним быстрым решением является заданное свойство изображения для изображения1 и задано свойство backgroundimage для imag2, единственное неудобство состоит в том, что у вас есть два изображения внутри поля изображения, но вы можете изменить свойства фона на черепицу, растянутую и т.д. Убедитесь, что backcolor быть прозрачным. Надеюсь, что это поможет

Ответ 6

вы можете установить PictureBox BackColor свойство Transparent