2014-02-11 3 views
0

. NET TrackBar의 트랙 안에 레벨 표시기를 설치하는 방법이 있는지 궁금합니다.트랙 내부에 레벨 표시기가있는 트랙 바?

내 사용 시나리오는 다음과 같습니다. 오디오 스퀠 치 컨트롤이 필요해. 그래서 나는 TrackBar을 사용하기를 원합니다. 사용자가 0 ~ 100 squelch 사이를 드래그합니다. 그러나 동시에 나는 TrackBar의 트랙에 현재 오디오 레벨을 보여주고 싶습니다. 사용자가 현재 오디오 레벨이 스켈치와 관련이있는 위치를 알 수 있도록합니다.

제안 사항? 이 무언가가 TrackBar의 페인트 방법을 재정의해야합니까? 아니면 내가 사용할 수있는 자유로운 컨트롤이 있습니까?

+0

어딘가에 떠있는 텍스트가있는 것처럼? 또는 슬라이더에 오른쪽으로 그립니 까? 또는...? – DonBoitnott

+0

이상적으로는 트랙 바 트랙 내부에 컬러 막대로 그려야합니다. –

+0

'TrackBar'에서 새로운 컨트롤을 파생시키고'OnPaintBackground'를 오버라이드 한 다음, 색깔있는 영역을 그립니다. – DonBoitnott

답변

0

이렇게 쉬운 것은 아닙니다. 단순히 TrackBar 컨트롤의 모양을 보완 할 수는 없습니다. 그러나,

SetStyle(ControlStyles.UserPaint, true); 

이 뜻을 그림의 모든을 소유하도록 강요 : 당신은 TrackBar에서 파생되는 클래스의 생성자에 다음 줄을 추가하여 UserPaint를 실행해야합니다. 즉, OnPaintOnPaintBackground을 모두 무시하고 TrackBarRenderer의 메서드를 사용하여 전체 컨트롤을 페인트해야합니다.

그런데, 당신에게 주어진 방법은 꽤 간단하고 컨트롤 그리기는 비교적 쉽습니다.

참고 : this Code Project article에는 전체 맞춤식 그림을 그리기로 결정하면 좋은 포인터가 많이 있습니다. 아마도 당신의 교체 통제 역할을 할 수도 있습니다.

다른 것들이 있습니다. "C# trackBar custom draw"에 대한 Google 검색을 수행하십시오.