3

Trackbar Winforms コントロールで興味深い動作を見つけました。

水平トラックバーでは、左右の矢印キーが期待どおりに機能します。(左矢印はスライダーを左に移動して値を減少させ、右矢印はその逆です) また、上下矢印キーと PageUp/PageDown を使用してスライダーを操作することもできます。ただし、この動作は直観に反しているように見えます。上矢印とページアップでスライダーが左に移動し、結果として値が減少します。下矢印とページダウンは、スライダーを右に移動し、値を増やします。

垂直トラックバーを使用する場合、上/下キーは期待どおりに機能しますが、左矢印 = 増加し、右矢印 = 減少します。

これは、C# Winforms の既定の動作であり、ネイティブ Windows のようです。(後者についてはわかりません。UACのスライダーはこのように機能します)

WPF では、スライダー コントロールは「適切に」動作します。つまり、上矢印、右矢印、および PgUp で値が増加します。また、Internet Explorer のプライバシー設定のスライダーも適切に機能します。理由はわかりませんが、キーのカスタム処理が疑われます。

人間工学の観点から、上、右、前、時計回りの操作が価値を高めることになっていることは明らかです。(これは何も新しいことではありません。ヒューマン ファクターとエルゴノミクスのガイド、第 2 版、100 ページを比較してください)

今私の質問に:なぜこれがそうなのか誰か知っていますか?

4

1 に答える 1

1

この動作は、トラックバーコントロールとスクロールバーコントロールの一貫性を保つために選択されたと思う傾向があります。

これらの2つのコントロールには、非常に共通点があります(親指は「線」または「ページ」の増分で移動でき、両方のコントロールは水平または垂直に配置できます。どちらもWM_HSCROLLWM_VSCROLLを使用して、親指の位置が変わったときに親に通知します)。

コントロールの観点から、親指は「上」または「下」(それぞれ「左」または「右」)に移動できます。Left使用されるスクロールバーとUp上向き(左向き)の動き、RightおよびDown下向き(右向き)の動きのためのキーボードナビゲーション。

トラックバーコントロールが同じ規則に従うことは理にかなっているはずなので、スクロールバーコントロールの実装に慣れている開発者は、同じ原則をトラックバーコントロールに適用できます。

于 2013-02-12T12:57:17.087 に答える