Это способ остановить мерцание изображения при изменении размера?

У меня есть изображение, которое я хотел включить в свое приложение 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 мс после последнего события изменения размера.

Другие вопросы по тегам