c # самый простой способ нарисовать линию за трекбаром - PullRequest
1 голос
/ 05 сентября 2011

Я создаю приложение на c #, и я хотел бы получить такой же эффект для компонента трекбара, как в приложении системной громкости в Windows 7 (зеленая линия, которая представляет текущий уровень выходного звука).

Я бы хотел нарисовать зеленую линию за трекбаром в зависимости от логики. Проблема в том, что у трекбара есть цвет фона, и если я рисую что-нибудь позади него, цвет фона закрашивает линию, и я не могу рисовать над ним, потому что он закрашивает ползунок / кнопку трекбара.

Должен ли я реализовать свой собственный метод рисования трекбаров с нуля или есть более простое решение?

1 Ответ

1 голос
/ 15 мая 2012

У меня была похожая проблема, и, к сожалению, вы не можете сделать это с помощью трекбара. Однако довольно просто создать собственный нарисованный пользователем трекбар. посмотрите на эту статью.

Однако в итоге я использовал класс TrackBarRenderer для создания моей собственной панели треков, преимущество в том, что она использует тот же код, поэтому имеет тот же стиль, что и стандартная панель треков, но вы можете изменить почти все Вот пример того, как создать трекбар, используя этот стиль .

Если вы посмотрите код, то увидите, что все, что вам нужно сделать, - это изменить метод OnPaint, чтобы закрасить trackRectangle выбранным вами цветом.

...