2012-01-17 2 views
0

Я бы создал приложение, основанное на формах окон и использующее пользовательские скины. Большинство скинов - это растровые изображения, которые я разделяю на 9 частей, поэтому я могу рисовать на 9 Graphics.DrawImage() вызывает красивые коробки/панели с обложкой. Проблема начинается, когда приложение становится более похожим на другие скин-приложения. Когда все визуально сделано, ворсие - исполнение. У меня также есть окна с окнами, у которых есть панель MDI Container с пользовательским фоновым изображением. Когда я перетаскиваю такую ​​форму, экран мигает, загромождает - как правило, низкий FPS.GDI + performance (System.Windows.Forms, System.Drawing) & Skinning

Что я могу сделать, чтобы написать приложение для окон с окнами, которые имеют быстрый графический интерфейс? (Я планирую не использовать WPF) Спасибо за ответы.

+0

Если вы хотите производительность, использовать WPF :) – Bas

+1

я сильно акцент: Я не буду использовать WPF. Зачем? Beacuse Я знаю, что не каждое приложение (например, FL Studio) с очень быстрым графическим интерфейсом использует WPF. Так что должен быть другой способ ... – komorra

ответ

1

Graphics.DrawImage() делает гораздо больше, чем просто нарисовать изображение, вы могли бы P/Invoke BitBlt вместо этого значительно повысить производительность.

Смотри, например, http://www.codeproject.com/KB/GDI-plus/flicker_free.aspx

+0

Спасибо большое :) Это работает быстрее, но его нужно запрограммировать немного сложнее. Однако это надежная основа для оптимизации. Кроме того, я дополнительно использовал метод SetStyle для всех моих элементов управления для еще большей скорости. Теперь он работает очень быстро :) – komorra

+0

Приятно слышать, что у вас все началось :) –