Имитация загрузчика ajax в приложении winform - PullRequest
3 голосов
/ 31 января 2009

У меня есть приложение winform, которое отображает несколько диаграмм в зависимости от выбора пользователя. Я хочу смоделировать загрузчик в стиле ajax так, чтобы, когда пользователь делает выбор, на форме было наложение с анимацией в центре. Какие есть варианты в достижении этого? Я думал о загрузке панели с анимацией (GIF) в центре, добавить немного прозрачности.

Редактировать ~ Кто-нибудь?

Редактировать ~ Здесь - это решение, которое я нашел ... наконец-то! Никакой ерунды WPF.

Ответы [ 3 ]

0 голосов
/ 03 февраля 2009

Элемент управления WinForms PictureBox не может обрабатывать анимированные GIF-изображения.

Вы все еще можете использовать PictureBox, но пролистывать кадры самостоятельно. Просто установите таймер каждые 50 или 100 мс, чтобы вращать кадры на картинке.

Чтобы создать наложение, я бы попробовал черную панель, которая будет покрывать всю форму некоторым альфа-значением. Это не будет работать на чем-то ниже, чем Windows XP, хотя. Если я правильно помню, Windows 2000 и ниже не могут обрабатывать прозрачность в Winforms.

0 голосов
/ 06 августа 2009

Как уже сказал Саиф, это полностью настраиваемые загрузчики:

http://www.codeproject.com/KB/cs/mrg_loadingcircle.aspx

0 голосов
/ 31 января 2009

WinForms довольно слабы для такого рода вещей - WPF намного лучше справляется с подобными ситуациями. Вы могли бы сделать пару вещей:

1) HACK! Создайте новую немодальную форму без полей, содержащую элемент управления ожиданием, и поместите его поверх существующей формы. Кстати, вы не можете назначить прозрачность ни одному из готовых элементов управления WinForms. Убедитесь, что при перемещении существующей формы ваша новая форма перемещается. Это полный взлом.

2) Создайте свой собственный элемент управления WinForms с нуля и закрасьте существующую форму. Высокое соотношение цены и вознаграждения.

3) Используйте WPF для этой формы, что позволит вам гораздо больше гибкости. Это совершенно новая структура ... Только для одной формы?

4) Временно скрыть график и просто сделать вашу панель прогресса действительно красивой.

...