Проблемы с ProgressBar в XP Style
От: XpandeR  
Дата: 07.01.06 00:25
Оценка:
Попробовал переделать свои приложения, чтобы они отображали контролы в XP стиле. Т.е. добавил .manifest файл.
Вроде все ок, да проблема возникла с ProgressBar'ом.

Если помещенный на форму прогрессбар сузить в дизайнере до минимально возможной высоты, то в рантайм он отображается как-то странно: примерно треть длины прогрессбара темно-серая, еще треть — белая, а последняя часть — светло-серая.

При этом, если сделать высоту чуть побольше — то отображается нормально.
Может кто знает, в чем дело?

Юзаю Framework 1.1 если это имеет значение.
Проблемы с ProgressBar в XP Style
От: Аноним  
Дата: 10.01.06 04:37
Оценка:
была у меня подобная проблема с этим баром (правда он у меня был на статус баре). я сделал следующее: добавил статусу бару после прогресс бара еще один контрол (ну, например, лабель) и сделал визибл в фолс — помогло.



данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Проблемы с ProgressBar в XP Style
От: XpandeR  
Дата: 14.01.06 00:20
Оценка:
Здравствуйте, Gordon, Вы писали:

G>была у меня подобная проблема с этим баром (правда он у меня был на статус баре). я сделал следующее: добавил статусу бару после прогресс бара еще один контрол (ну, например, лабель) и сделал визибл в фолс — помогло.


Увы у меня ProgressBar не на StatusBar'е, поэтому такое решение не применимо.
Re: Проблемы с ProgressBar в XP Style
От: mihailik Украина  
Дата: 14.01.06 08:29
Оценка:
XR> контролы в XP стиле. Т.е. добавил .manifest файл.
XR>Юзаю Framework 1.1 если это имеет значение.

Там не нужен манифест. Вызывай в методе Main:

Application.EnableVisualStyles();
Application.DoEvents();

Application.Run( new MyForm1() );
Re[2]: Проблемы с ProgressBar в XP Style
От: XpandeR  
Дата: 21.01.06 01:33
Оценка:
Здравствуйте, mihailik, Вы писали:

M>Там не нужен манифест. Вызывай в методе Main:


M>
M>Application.EnableVisualStyles();
M>Application.DoEvents();

M>Application.Run( new MyForm1() );
M>


Это тоже пробовал, но вид прогрессбара остается прежним
Re[3]: Проблемы с ProgressBar в XP Style
От: Mike Chaliy Украина http://chaliy.name
Дата: 21.01.06 08:18
Оценка: +1
Здравствуйте, XpandeR, Вы писали:

XR>Здравствуйте, mihailik, Вы писали:


M>>Там не нужен манифест. Вызывай в методе Main:


M>>
M>>Application.EnableVisualStyles();
M>>Application.DoEvents();

M>>Application.Run( new MyForm1() );
M>>


XR>Это тоже пробовал, но вид прогрессбара остается прежним


Так а почему бы не сделать его стандартной высоты? В стилях на самом то деле не тока вид но и размеры регламентируются. Так что если хотите чтобы потдерживался везде и всегда, советую использовать стандартный размер.
А тут я живу и пишу...
Re: Проблемы с ProgressBar в XP Style
От: DangerRSDN Россия http://danger-world.livejournal.com/
Дата: 12.02.06 15:16
Оценка:
Здравствуйте, XpandeR, Вы писали:

XR>Если помещенный на форму прогрессбар сузить в дизайнере до минимально возможной высоты, то в рантайм он отображается как-то странно: примерно треть длины прогрессбара темно-серая, еще треть — белая, а последняя часть — светло-серая.


Проблема в том что Windows XP натягивая шкурку на контрола прогресса рассчитывает размер изображения, исходя из его размеров.
Соответственно размер изображения у элементов шкурки может быть БОЛЬШЕ чем тот минимальный размер который Вы задаете (можно посмотреть
размеры этих изображений и сами изображения открыв редактором ресурсов файл темы *.msstyle — это обычный ресурсный Win32 PE файл, например
"BLUE_PROGRESSTRACK_BMP" — изображение неактивной части прогресса).
Вот и "ошибается" менеджер тем рассчитывая координаты "натягивания" шкурки на ваш маленький контрол (на самом деле деле совсем он не
ошибается а правильно растягивает картинку в зависимости от коэфициента высоты контрола / высоту картинки).

Кстати — дизайнер такую "особенность" контрола прогресса прекрасно понимает и не позволяет "легальным способом" уменьшить высоту
контрола, т.е. уменьшить высоту с помощью мыши. Минимальная высота — 10 пикселей. Если установить насильно меньшь — скажем 9 пикселей, начинаются глюки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Проблемы с ProgressBar в XP Style
От: DangerRSDN Россия http://danger-world.livejournal.com/
Дата: 12.02.06 15:25
Оценка:
Здравствуйте, XpandeR, Вы писали:

XR>Если помещенный на форму прогрессбар сузить в дизайнере до минимально возможной высоты, то в рантайм он отображается как-то странно: примерно треть длины прогрессбара темно-серая, еще треть — белая, а последняя часть — светло-серая.


Вся проблема в том что если размер контрола прогресса меньше определенного размера картинки из ресурсов текущей темы (файл *.msstyle — например luna.msstyle, можно открыть с помощью любого редактора ресурсов в том числе и MS Visual Studio) менеджер тем Windows XP при
"натягивании" картинки "ошибаеться" и неверно вычисляет коэффициент для масштабирования картинки.

Кстати — присмотрись к дизайнеру Visual Studio. Он "знает" про эту "особенность" прогреса и не позволяет легальным способом (с помощью мыши) изменить высоту контрола меньше минимальной (10 пикселей). Если изменять с помощью редакторов свойств высоту "насильно" — например поставить 9 пикселей, уже ползут глюки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.