WPF

[WPF]スライダのツマミをスライドしたときに設定できる値をとびとびの値(0,50,100,150,・・・等)にしたい


やりたいこと

スライダのツマミをスライドしたときに設定できる値をとびとびの値(0,50,100,150,・・・とか)にしたいが、それらしい設定ができるプロパティがない。どうにかして簡単にできないか?


やり方

スライダーに含まれる「Tick」を使う。

さらに具体的には、プロパティ「TickFrequency」「IsSnapToTickEnabled」を使う。


サンプル

例えば、値が1~65535のスライダで、ツマミをスライドしたときに5000刻みで値を変化させたいときは、下記のように書く。


a.xaml

        <Slider Name="MySlider" 

Maximum="65535" Minimum="1"
TickFrequency="5000" IsSnapToTickEnabled="True"
SmallChange="1"
LargeChange="1"/>
<!-- SmallChangeは「矢印キーを押したときの値の変化量」。-->
<!-- LargeChangeは「マウスでつまみの横の余白の線(実際はリピートボタン)をクリックしたときの値の変化量」。-->
<!-- ツマミをスライドしたときとはまた別。(ここでは、参考のために書いているがなくてOK。) -->

やっている内容としては、


  • Tick(目盛り表示)を、とびとびにしたい刻みの値に設定する。→TickFrequency

  • スライダのツマミを、Tickの値に合わせて変化するよう設定する。→IsSnapToTickEnabled

のみ。


参考

Slider Class

https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.controls.slider?view=netframework-4.8

WPF4.5入門 その36 「Sliderコントロール」

https://blog.okazuki.jp/entry/2014/08/15/220915