Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 16.04.2012
Сообщений: 19

Плавное исчезновение картинки

25.06.2012, 17:16. Показов 2226. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помощи.
Вот что у меня есть: две картинки PBNext1 и PBNext2. Вторая картинка скрыта.
Вот что мне надо: При наведении курсора на первую картинку она плавно затухает, и параллельно появляется вторая.
Такое есть в AIMP, установщике VS2012 и прочих больших программах.
У меня есть несколько путей:
Через таймер. Каждые 10 мс уменьшать неизвестно что на первой картинке и увеличивать на второй
Через do while. Принцип тот же

Но вот встала проблема. У Picture Box нету свойства Opacity и, естественно, изменять (+1, -1) нечего.

Что предложите делать?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2012, 17:16
Ответы с готовыми решениями:

Плавное появление и исчезновение текста
Нужно реализовать плавное появление и исчезновение текста. Если ли какие-нибудь встроенные инструменты для этого? Дополнительная...

Плавное исчезновение окна
Зы, от нечего делать решил запилить плавное исчезновение диалоговых окон, а точнение, сделать так, что бы сообщение об ошибке исчезало само...

Плавное исчезновение контента
Имеется в виду не исчезновение по времени, с этим всё понятно. Мне нужно, чтобы при прокрутке страницы контент не уходил за рамки окна, а...

9
 Аватар для kOS_77
196 / 188 / 9
Регистрация: 14.06.2011
Сообщений: 495
25.06.2012, 18:59
А если картинки расположить не в пикчербоксах а на отдельных формах, можно даже дочерних то появится свойство Opacity. Хотя я думаю должен быть другой способ это сделать.
0
0 / 0 / 1
Регистрация: 16.04.2012
Сообщений: 19
25.06.2012, 19:00  [ТС]
kOS_77, картинки выполняют функцию кнопок. Думаю не пойдет
0
1 / 1 / 0
Регистрация: 24.06.2012
Сообщений: 36
25.06.2012, 19:11
наверно можно менять RGB оттенки
хотя и в правду странно как в этих программах это реализованно
0
0 / 0 / 1
Регистрация: 16.04.2012
Сообщений: 19
25.06.2012, 19:12  [ТС]
Вот и я теряюсь
0
 Аватар для Pooh
409 / 361 / 82
Регистрация: 07.10.2009
Сообщений: 558
26.06.2012, 10:54
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Sanshalay Посмотреть сообщение
Вот что мне надо: При наведении курсора на первую картинку она плавно затухает, и параллельно появляется вторая.
Тут посмотрите, правда смена изображений не по наведению курсора, а по нажатию кнопки, но я думаю, это не принципиально.
5
0 / 0 / 1
Регистрация: 16.04.2012
Сообщений: 19
26.06.2012, 18:49  [ТС]
Pooh, спасибо. Смена с первой картинки на вторую при наведении на нее курсора работает. А вот обратный процесс не могу запустить. Вот код:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Public Class Form1
#Region "Графика. Переменные"
    Dim proz As Single = 1.0!
    Dim OverImage, UnderImage As Image
    Dim ia As Imaging.ImageAttributes = New Imaging.ImageAttributes
    Dim cm As Imaging.ColorMatrix = New Imaging.ColorMatrix(New Single()() _
    {New Single() {1, 0, 0, 0, 0}, _
    New Single() {0, 1, 0, 0, 0}, _
    New Single() {0, 0, 1, 0, 0}, _
    New Single() {0, 0, 0, 1, 0}, _
    New Single() {0, 0, 0, 0, 1}})
#End Region
 
#Region "Кнопка Закрыть"
#Region "Таймер"
    Private Sub TimerExitIn_Tick(sender As Object, e As EventArgs) Handles TimerExitIn.Tick
        proz -= 0.05!
        If proz < 0.0! Then
            proz = 0.0!
            TimerExitIn.Enabled = False
        End If
 
        cm.Matrix33 = proz
        ia.SetColorMatrix(cm)
 
        With ButtonExit
            Dim g As Graphics = Graphics.FromImage(.Image)
            g.DrawImage(UnderImage, 0, 0)
            g.DrawImage(OverImage, _
            Rectangle.Round(OverImage.GetBounds(GraphicsUnit.Pixel)), 0, 0, _
            UnderImage.Width, UnderImage.Height, GraphicsUnit.Pixel, ia)
            g.Dispose()
        End With
 
        ButtonExit.Refresh()
    End Sub
 
    Private Sub TimerExitOut_Tick(sender As Object, e As EventArgs) Handles TimerExitOut.Tick
        proz -= 0.05!
        If proz > 0.0! Then
            proz = 0.0!
            TimerExitOut.Enabled = False
        End If
 
        cm.Matrix33 = proz
        ia.SetColorMatrix(cm)
 
        With ButtonExit
            Dim g As Graphics = Graphics.FromImage(.Image)
            g.DrawImage(OverImage, 0, 0)
            g.DrawImage(UnderImage, _
            Rectangle.Round(UnderImage.GetBounds(GraphicsUnit.Pixel)), 0, 0, _
            OverImage.Width, OverImage.Height, GraphicsUnit.Pixel, ia)
            g.Dispose()
        End With
 
        ButtonExit.Refresh()
    End Sub
#End Region
    Private Sub ButtonExit_MouseMove(sender As Object, e As MouseEventArgs) Handles ButtonExit.MouseMove
        TimerExitIn.Interval = 10
        TimerExitIn.Enabled = True
    End Sub
 
    Private Sub ButtonExit_MouseLeave(sender As Object, e As EventArgs) Handles ButtonExit.MouseLeave
        TimerExitOut.Interval = 10
        TimerExitOut.Enabled = True
    End Sub
#End Region
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        OverImage = New Bitmap(My.Resources.Закрыть_1)
        UnderImage = New Bitmap(My.Resources.Закрыть_2)
        ButtonExit.Image = OverImage.Clone
        ButtonExit.Size = New Size(OverImage.Width, OverImage.Height)
    End Sub
End Class
Я думаю проблемы в процедуре TimerExitOut_Tick. Но найти их не могу. Кто может помочь?
0
 Аватар для Pooh
409 / 361 / 82
Регистрация: 07.10.2009
Сообщений: 558
27.06.2012, 15:31
Изменил свой проект, теперь изображения в PictureBox меняются при MouseEnter и MouseLeave.
Вложения
Тип файла: zip WinApp.zip (52.9 Кб, 72 просмотров)
3
 Аватар для kOS_77
196 / 188 / 9
Регистрация: 14.06.2011
Сообщений: 495
27.06.2012, 15:58
Получилось достаточно здорово !
0
0 / 0 / 1
Регистрация: 16.04.2012
Сообщений: 19
27.06.2012, 16:00  [ТС]
kOS_77, ага

Pooh, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.06.2012, 16:00
Помогаю со студенческими работами здесь

Плавное появление и исчезновение
Всем привет. Хотела, чтобы при наведении на кнопку выпадающий список плавно появлялся, а если увести курсор, то плавно исчезал...Написала...

Плавное появление/исчезновение текста
Добрый вечер. Помогите, плз, сделать такой эффект. Когда поле ввода получает фокус, где-то рядом появляется подсказка. Когда фокус...

Плавное появление и исчезновение формы
Пишу прогу, хочу сделать плавное появление и исчезновение формы. Сделала что то следующие: public partial class Form1 : Form { ...

Плавное исчезновение компонента (TImage)
У меня на форме есть компонент TImage, после клика по нему делаю его невидимым: Image1.Visible := False; Проблема в том, что он сразу...

Плавное появление и исчезновение формы
Сделал я форму, захотелось сделать её плавно появляющейся и плавно закрывающейся, впринципи получилось, но есть трабла: форма появляется не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru