2014-02-11 37 views
0

我想知道是否有方法在.NET TrackBar的軌道內設置一個關卡指示器?跟蹤裏面的水平指示器?

我的使用場景是這樣的。我需要一個音頻靜噪控制。所以我想使用一個TrackBar,用戶在0到100之間拖拽靜音。但同時我想在TrackBar的軌道上顯示當前音頻電平。以便用戶知道當前音頻電平與靜噪的關係。

有什麼建議嗎?這是否是我需要重寫TrackBar的繪製方法?或者有什麼地方可以使用自由控制?

+0

在某些額外的浮動文本的地方?或者直接在滑塊上繪製?要麼...? – DonBoitnott

+0

理想情況下,它應該被繪成軌跡條軌道內的彩條。 –

+0

從'TrackBar'派生一個新的控件並重載'OnPaintBackground',然後繪製你的彩色區域。 – DonBoitnott

回答

0

這並不像看起來那麼容易。人們不能簡單地擴大控制的外觀。您可以通過添加以下行來,從TrackBar派生的類的構造函數來觸發UserPaint

SetStyle(ControlStyles.UserPaint, true); 

然而這將,迫使你自己畫的所有。這意味着您將需要覆蓋OnPaintOnPaintBackground,並使用TrackBarRenderer中的方法繪製整個控件。

話雖如此,給你的方法非常簡單,繪製控件相對容易。

注:this Code Project article必定有很多好的指針,如果你決定追求完整的自定義繪圖。也許甚至可以作爲你的替代控制。

還有其他的。只要做一個谷歌搜索「C#TrackBar自定義繪製」。