libro
www.tuyano.com
初心者のためのWindows Phoneプログラミング入門

さまざまなコントロールの利用 (5/6)

作成:2011-10-03 08:07
更新:2011-10-03 08:07

■スライダーを使う

スライダーは、その名の通り「Slider」という部品として用意されています。これは、バーに付いている取っ手部分をドラッグして動かすことで数値をアナログ的に入力するためのものです。

このSliderを利用するためには、いくつか設定する必要のあるプロパティがあります。以下に整理しておきましょう。

Minimum――スライダーの最小値。
Maximum――スライダーの最大値。
Value――現在の値。
Orientation――向き。HorizontalVerticalのいずれか。
SmallChange――スクロール時変化量。(これはスマートフォンだと意味が無いかも)
LargeChange――バー部分をクリックした時の変化量。

これらの値を設定してスライダーを用意します。少なくとも、Minimum, Maximum, Valueの3つは必ず設定する、と考えておきましょう。(デフォルトでは0~10の範囲内でスライドするようになっています)

スライダーを操作した時のイベント処理は、「ValueChanged」というイベントプロパティとして用意されています。これにメソッドをバインドして、操作時の処理をすることができます。下に簡単な例を挙げておきました。操作すると、現在の値がリアルタイムにtextBlock1に表示されます。

ここでは、slideChangedというメソッドを用意し、これとValueChangedをバインドしています。
このメソッドでは、objectの他に「RoutedPropertyChangedEventArgs<double>」という引数が用意されています。これにより発生したイベントに関する情報が受け渡されます。

ここでは、ごく単純にSliderValueを取り出し、表示しています。が、実際にこれを動かしてみると、非常に細かな実数の値が表示されることがわかります。Sliderの値は、doubleなのです。intではありません。

「整数の値や、決まった間隔でのみ値を取り出せるようにしたい」という場合は、得られた値を丸めて利用すればよいでしょう。下の2番目のサンプルは、Valueの値を10単位で表示されるようにしたものです。10で割ってintとして取り出し、それを10倍しています。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※そのままの値を表示

private void slideChanged(object sender,
		RoutedPropertyChangedEventArgs<double> e)
{
	try
	{
		Slider s = (Slider)sender;
		textBlock1.Text = "value: " + s.Value;
	}
	catch (NullReferenceException ex) { }
}


※10単位で値を表示

private void slideChanged(object sender, 
		RoutedPropertyChangedEventArgs<double> e)
{
	try
	{
		Slider s = (Slider)sender;
		int n = (int)(s.Value / 10) * 10;
		textBlock1.Text = "value: " + n;
	}
	catch (NullReferenceException ex) { }
}

※関連コンテンツ

「初心者のためのWindows Phoneプログラミング入門」に戻る