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

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

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

Скриншот формы

Один из способов сделать это – изменить родительский элемент перекрывающегося windows изображения на 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; } 

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

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

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(); 

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

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

 ImageList imgList = new ImageList; imgList.TransparentColor = Color.White; 

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

 picturebox.Image = imgList.Images[img_index]; 

У меня была аналогичная проблема. Вы не можете сделать 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 } 

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

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

  • winforms accordion
  • Структурирование проектов и зависимостей приложений больших winforms в C #
  • C # Получить позицию элемента управления в форме
  • Обновление пользовательского интерфейса в C # с использованием таймера
  • Как я могу сделать ComboBox недоступным для редактирования в .NET?
  • Как я могу сделать работу с гиперссылкой в ​​RichTextBox?
  • как отключить копирование, Вставить и удалить функции в текстовом поле с помощью C #
  • System.Windows.Threading.Dispatcher и WinForms?
  • C #: Как добавить подсказку в элемент управления?
  • Создайте BackgroundWorker, выполнив несколько операций последовательно, не замораживая форму
  • Как я могу вызвать событие рисования?
  • Давайте будем гением компьютера.