3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WPFのスライダーを目盛り単位で動かすには4つのプロパティが必要

3
Last updated at Posted at 2026-07-31

概要

WPFには、数値を範囲内で変更するUIとして便利なスライダーがあります。あまり見かけないので、WPFに有ることを知らない人も多いのでは?

使ってみたところ直観と違う動きで戸惑ったので、引っかかった注意点を書きます。この記事ではそれ以外の情報は触れないので、それ以外については MS Learn を見てください。

ChatGPT Image 2026年7月30日 22_36_19.png

最初に結論まとめ

マウスとキーボードの操作で違和感なく動くようにするには、プロパティ IsSnapToTickEnabledLargeChangeSmallChange も設定しましょう。1目盛りのサイズを設定する TickFrequency の設定だけでは不足です。

説明

最低限の設定で使ってみる

まずスライダーを使おうとしたときに最初に設定するのは、「スライダーの値の範囲と、1目盛りのサイズ」と考えるのではないでしょうか。私はそう考えました。

というわけで、値の範囲を決めるMinimum=0Maximum=1、目盛りを決める TickFrequency=0.1 と設定しました。これで0~1を0.1刻みで動くスライダーになるはずです。

image.png

見た目にはいい感じになりました。完成ですね!

マウスとキーボードで起きた想定外の動作

そうは行きませんでした。

マウスでつまみをドラッグすると、無段階に好きな位置へドラッグできます。0.1刻みはどこへ?

さらに、マウスでレーン部分をクリックすると、1目盛りずつ移動するのではなく、最小値と最大値を往復する変な動きになりました。妙な感じです。

image.png
image.png

一方、フォーカスを当ててキーボードの左右キーで動かすと、1目盛りずつ動いているように見えました。キーボードとマウスで動作が違う・・・?

image.png
image.png

つまみ操作、クリック、キーボード、それぞれ関連プロパティが違う

TickFrequencyは目盛りを決めるプロパティであり、操作はまた別でした。

※マウス・左右キー以外にもこれらのプロパティが効くので、詳細はリンク先の MS Learn を見てください

まず、 IsSnapToTickEnabled はデフォルトでfalseなので、これをtrueにしないとつまみの動きは変わりません。

次に LargeChange SmallChange は、TickFrequency とは無関係に、固定のデフォルト値を持っています。

LargeChangeのデフォルト値は1。今回は0~1のスライダーにしたのでこれがかなり目立ち、レーンクリックでは最小値と最大値しか選択されない動きになったというわけです。

SmallChangeのデフォルト値は0.1。今回はたまたまTickFrequencyと同じ値だったので、キーボードでは期待通りに動くように見えただけでした。

これらの値もちゃんと設定しないと、妙な動きになってしまうようです。

今回の解決方法

今回はすべての操作を0.1刻みにしたいため、次のように設定しました。

<Slider Minimum="0" Maximum="1" TickFrequency="0.1"
    IsSnapToTickEnabled="True"
    LargeChange="0.1"
    SmallChange="0.1"/>

まとめ

WPFにもちゃんと標準でスライダーがあり、上手く使えばUIをちょっとリッチな感じに出来ます。

しかし「目盛り刻みで操作したい」という場合、TickFrequency だけではなく IsSnapToTickEnabledLargeChangeSmallChange もちゃんと設定しましょう。そうしないと、「マウス操作の時だけ動きがおかしい」などといった妙な動きに悩まされることになります。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?