Форма Windows C #: как отобразить GIF-анимацию с прозрачным фоном над кнопками?

#c# #.net #image #transparency #picturebox

#c# #.net #изображение #прозрачность #picturebox

Вопрос:

Здесь у меня есть GIF-анимация с прозрачным фоном, которая будет появляться каждый раз, когда пользователь нажимает. GIF-анимация представляет собой простой объект PictureBox.

GIF-анимация с прозрачным фоном, которая появляется каждый раз, когда пользователь нажимает. Анимация воспроизводит простую красную рябь

Меня беспокоит то, что фон GIF-анимации показывает фон окна формы, который закрывает кнопки здесь:

Изображение # 1: quot;Прозрачный фонquot; GIF-анимации отображается над кнопками.

Изображение № 2: quot;Прозрачный фонquot; GIF-анимации отображается над зеленой панелью.

Я понимаю, что «прозрачный фон» GIF-анимации на самом деле является фоном окна формы.

Как можно отобразить GIF-анимацию с прозрачным фоном только над отображаемыми кнопками?

Вы можете ознакомиться с моей формой Windows здесь:https://youtu.be/FBuom68dKv4

Комментарии:

1. Если PBox вложен в один контейнер и имеет BackColor.Transparent , он должен работать нормально. Здесь это происходит. Если она находится не в контейнере, например, в другом PBox или кнопке, вам нужно закодировать вложение следующим образом: youGifPBox.Parent = someButton; youGifPBox.Location = ...

2. Дубликат linke, похоже, на самом деле не соответствует проблемам этого сообщения. Я не вижу здесь перекрытия. Ответы также не очень хороши, поскольку они не объясняют правила полностью.. — Конечно, нельзя просто рисовать анимированные GIF-файлы..

3. Означает ли это, что я могу использовать панель и поместить PictureBox внутри указанной панели?

4. Какие контейнеры нравятся?

5. Пока PBox находится только на ОДНОМ другом элементе управления, он будет работать. Панели (и групповые поля, а затем некоторые ..) являются контейнерами, и размещение элемента управления в них автоматически вложит их. Кнопка, PBoxes и большинство других элементов управления, а не контейнеров. Вы все еще можете вложить в них, установив Parent или выполнив ctl1.Controls.Add(ctl2) — Вы правильно установили PBox.BackColor? Это первое, что вам нужно сделать правильно!