色編集アプリのUIとしてTrackBarを使いました。 前回のHScrollBarにおける罠と欠点が解消されていました。しかし、別の残念な点がありました。
残念な点
- ビジュアル
- 表示幅が大きすぎる
- 目盛り表示はいらない
- 目盛り表示が潰れて黒い直線になってしまう
- 操作性
- ツマミから離れた点を長押しつづけるとツマミが移動するが、その周期が0.5秒と遅すぎる
- ツマミから離れた点を長押ししながらマウスポインタを動かすと移動速度が不規則に変動する
Maximum=10
Maximum=255
なお、根本的に見た目がダサいことには目をつぶります。
こうなればいい
- ビジュアル
- バーやツマミの大きさを任意に変えたい
- 目盛りの表示を消したい
- 操作性
- ツマミから離れた点を押下した瞬間、その地点に瞬間移動させたい
- マウスオーバー時にフォーカスが当たっていることを表示したい (瞬間移動による誤操作を防止するため)
- ツマミから離れた点を押下した瞬間、その地点に瞬間移動させたい
どうすればいい?
- TrackBarクラスを継承したクラスを作る
- UserControlでゼロから実装する
まずは簡単そうなTrackBarクラスの継承からやってみよう。