Анимированный PictureBox становится статическим при прозр.

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Анимированный PictureBox становится статическим при прозр.

Сообщение Williams » 27.06.2008 (Пт) 16:26

При прозрачности и определенных манипуляциях с окном. Причем если свернуть окно и развернуть заново, то анимация продолжает "играть".

VS 2008.

DODge
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 30.07.2006 (Вс) 0:25
Откуда: Нижний Новгород

Сообщение DODge » 27.06.2008 (Пт) 18:27

У меня это решено следующим способом:
Код: Выделить всё

Private Sub Form_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Resize
   Picturebox.Visible = False
   ' тут разного рода манипуляции с картинкой, ну типа изменение положения картинки от рамера окна и т.п. и т.д.
   Picturebox.Visible = True
End Sub

В итоге картинка продолжает проигрываться даже во время изменения окна.
CPU = Intel Core i5 6500 @ 3.2 GHz
VGA = GeForce GTX 650Ti 2Gb
RAM = 8 ГБ DDR4 @ 2133 MHz
OS = Windows 10 Pro 64-bit
IDE = Microsoft Visual Studio Community 2017 (Visual Basic.NET)
GAPI = SharpDX 9 + 12

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Сообщение Williams » 27.06.2008 (Пт) 18:33

Не подействовало. Стоит переключиться на другое окно, как анимация останавливается.

773FF
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 07.02.2008 (Чт) 10:51

Сообщение 773FF » 27.06.2008 (Пт) 18:37

Или в загрузить любое другое изображение в PictureBox из ресурсов, а затем вернуть ваш GIF. Анимация возобновится, а перескок с ресурса на ресурс совсем не будет заметен.

773FF
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 07.02.2008 (Чт) 10:51

Сообщение 773FF » 27.06.2008 (Пт) 18:57

Делайте перезагрузку GIF в таймере (подсчитав длит. анимации).
Но если другое окно полностью перекроет вашу форму, то анимация может остановиться. В своём проекте я просто устанавливал размер нижней формы на один пиксель больше, чем у верхней (Width+1 и Height+1), но Вам это может не подойти.

Код: Выделить всё
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        PictureBox1.Image = My.Resources.Tmp
        PictureBox1.Image = My.Resources.Animation
    End Sub



Код: Выделить всё
Form2.Location = Me.Location
        Form2.Width = Me.Width + 1
        Form.Height = Me.Height + 1

773FF
Обычный пользователь
Обычный пользователь
 
Сообщения: 86
Зарегистрирован: 07.02.2008 (Чт) 10:51

Сообщение 773FF » 27.06.2008 (Пт) 19:14

И ещё вот так, если речь идёт о бутерброде из 2-х форм:

Код: Выделить всё
Me.Hide()
Form2.Show()
Me.Show()

DODge
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 30.07.2006 (Вс) 0:25
Откуда: Нижний Новгород

Сообщение DODge » 27.06.2008 (Пт) 19:36

Williams
Странно :?, я чё только с окнами не делал, картинка всё равно продолжает проигрываться. В общем я нашёл тот исходник, с которого я себе сделал просмоторщика изображений, оказалось что он у нас на основном сайте лежит. Надеюсь тебе он поможет.
CPU = Intel Core i5 6500 @ 3.2 GHz
VGA = GeForce GTX 650Ti 2Gb
RAM = 8 ГБ DDR4 @ 2133 MHz
OS = Windows 10 Pro 64-bit
IDE = Microsoft Visual Studio Community 2017 (Visual Basic.NET)
GAPI = SharpDX 9 + 12


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList