Это способ остановить мерцание изображения при изменении размера?
У меня есть изображение, которое я хотел включить в свое приложение vb.net, поэтому я разрезал его в фотошопе, разделил на несколько графических блоков и соответствующим образом закрепил их, чтобы при изменении размера моего приложения оно не растягивало все части изображения. Это все хорошо, выглядит великолепно и почти прекрасно работает... за исключением того факта, что при изменении размера формы он вызывает мерцание графических окон.
Я знаю, что Picture box - не самый быстрый элемент управления, поэтому я думаю, что он недостаточно быстро обновляется. Помимо мерцания, он отображается под белым фоном, хотя ящики с картинками прозрачны.
Я попытался добавить цвет фона для фона, надеясь, что он будет лучше скрывать мерцание при загрузке, но безрезультатно.
Таким образом, мой первый вопрос заключается в том, могут ли они предотвратить это? Если нет, то это контроль, который я мог бы использовать быстрее?
Может быть, кто-то знает пользовательскую графическую рамку, или даже если вы знаете, что элемент управления быстрее. В основном любой элемент управления, который позволял бы фоновое изображение и прозрачный цвет BG, работал бы, пока это быстрее.
Я действительно ценю любую помощь. Благодарю. PS: Мое приложение на VB.net, но я также добавляю тег C#, потому что мне, скорее всего, придется переключать элементы управления вместо того, чтобы восстанавливать его с помощью кода.
2 ответа
Два избегают мерцания в элементах управления в форме, вы можете использовать следующую функцию. Только скопируйте его и вставьте в любое место в form.vb
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H2000000
Return cp
End Get
End Property 'CreateParams
только вставить в любом месте, это свойство только для чтения
Два способа справиться с этим:
a) Измените размер изображения в графическом окне, чтобы оно стало меньше и быстрее перерисовывалось, или
б) Используйте таймер, чтобы перерисовать изображение, чтобы оно не начинало перерисовывать до 100-350 мс после последнего события изменения размера.