Xaml-slider
XAML-スライダー
スライダーは、ユーザーがThumbコントロールをトラックに沿って移動することで値の範囲から選択できるようにするコントロールです。 Sliderクラスの階層的な継承は次のとおりです-
プロパティ
以下は、スライダーの一般的に使用されるプロパティです。
Sr.No. | Property & Description |
---|---|
1 |
Header コントロールのヘッダーのコンテンツを取得または設定します。 |
2 |
HeaderProperty Header依存プロパティを識別します。 |
3 |
HeaderTemplate コントロールのヘッダーのコンテンツを表示するために使用されるDataTemplateを取得または設定します。 |
4 |
HeaderTemplateProperty HeaderTemplate依存プロパティを識別します。 |
5 |
IntermediateValue 値がティック値またはステップ値のいずれかにスナップされる前に、ユーザーが操作している間にSliderの値を取得または設定します。 Sliderがスナップする値は、SnapsToプロパティで指定されます。 |
6 |
IntermediateValueProperty IntermediateValue依存プロパティを識別します。 |
7 |
IsDirectionReversed 値が増加する方向を示す値を取得または設定します。 |
8 |
IsDirectionReversedProperty IsDirectionReversed依存プロパティを識別します。 |
9 |
IsThumbToolTipEnabled スライダーの値がSliderのThumbコンポーネントのツールヒントに表示されるかどうかを決定する値を取得または設定します。 |
10 |
IsThumbToolTipEnabledProperty IsThumbToolTipEnabled依存プロパティを識別します。 |
11 |
Orientation スライダーの方向を取得または設定します。 |
12 |
OrientationProperty Orientation依存プロパティを識別します。 |
13 |
StepFrequency ステップを作成する値範囲の値部分を取得または設定します。 |
14 |
StepFrequencyProperty StepFrequency依存プロパティを識別します。 |
15 |
ThumbToolTipValueConverter Sliderの範囲値をツールヒントコンテンツに変換するコンバーターロジックを取得または設定します。 |
16 |
ThumbToolTipValueConverterProperty ThumbToolTipValueConverter依存プロパティを識別します。 |
17 |
TickFrequency 目盛りを作成する値の範囲の増分を取得または設定します。 |
18 |
TickFrequencyProperty TickFrequency依存プロパティを識別します。 |
19 |
TickPlacement トラックに対して目盛りを描画する場所を示す値を取得または設定します。 |
20 |
TickPlacementProperty TickPlacement依存プロパティを識別します。 |
イベント
Sliderクラスで一般的に使用されるイベントを以下に示します。
Sr.No. | Event & Description |
---|---|
1 |
ManipulationCompleted UIElementの操作が完了したときに発生します。 (UIElementから継承) |
2 |
ManipulationDelta 入力デバイスが操作中に位置を変更すると発生します。 (UIElementから継承) |
3 |
ManipulationInertiaStarting 入力デバイスが操作中にUIElementオブジェクトとの接触を失い、慣性が始まると発生します。 (UIElementから継承) |
4 |
ManipulationStarted 入力デバイスがUIElementで操作を開始すると発生します。 (UIElementから継承) |
5 |
ManipulationStarting 操作プロセッサが最初に作成されたときに発生します。 (UIElementから継承) |
6 |
ValueChanged 範囲の値が変更されたときに発生します。 (RangeBaseから継承) |
方法
以下は、Sliderクラスで一般的に使用されるメソッドです。
Sr.No. | Method & Description |
---|---|
1 |
OnManipulationCompleted ManipulationCompletedイベントが発生する前に呼び出されます。 (Controlから継承) |
2 |
OnManipulationDelta ManipulationDeltaイベントが発生する前に呼び出されます。 (Controlから継承) |
3 |
OnManipulationInertiaStarting ManipulationInertiaStartingイベントが発生する前に呼び出されます。 (Controlから継承) |
4 |
OnManipulationStarted ManipulationStartedイベントが発生する前に呼び出されます。 (Controlから継承) |
5 |
OnManipulationStarting ManipulationStartingイベントが発生する前に呼び出されます。 (Controlから継承) |
6 |
OnMaximumChanged Maximumプロパティが変更されたときに呼び出されます。 (RangeBaseから継承) |
7 |
OnMinimumChanged Minimumプロパティが変更されたときに呼び出されます。 (RangeBaseから継承) |
8 |
OnValueChanged ValueChangedルーティングイベントを発生させます。 (RangeBaseから継承) |
9 |
SetBinding 提供されたバインディングオブジェクトを使用して、FrameworkElementにバインディングをアタッチします。 (FrameworkElementから継承されます) |
10 |
SetValue DependencyObjectの依存関係プロパティのローカル値を設定します。 (DependencyObjectから継承) |
例
次の例は、XAMLアプリケーションでのSliderの使用法を示しています。 以下は、いくつかのプロパティとイベントを含むスライダーとテキストブロックを作成するXAMLコードです。
<Window x:Class = "XAMLSlider.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
Title = "MainWindow" Height = "350" Width = "525">
<Grid>
<StackPanel>
<TextBlock Text = "Slider with ValueChanged event handler:" Margin = "10"/>
<Slider x:Name = "slider2" Minimum = "0" Maximum = "100"
TickFrequency = "2" TickPlacement = "BottomRight"
ValueChanged = "slider2_ValueChanged" Margin = "10"/>
<TextBlock x:Name = "textBlock1" Margin = "10" Text = "Current value: 0"/>
</StackPanel>
</Grid>
</Window>
ValueChangedイベントのC#での実装は次のとおりです-
using System;
using System.Windows;
using System.Windows.Controls;
namespace XAMLSlider {
///<summary>
///Interaction logic for MainWindow.xaml
///</summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
}
//private void slider2_ValueChanged(object sender,RangeBaseValueChangedEventArgs e)
//{
//string msg = String.Format("Current value: {0}", e.NewValue);
//this.textBlock1.Text = msg;
//}
private void slider2_ValueChanged(object sender,RoutedPropertyChangedEventArgs<double> e) {
int val = Convert.ToInt32(e.NewValue);
string msg = String.Format("Current value: {0}", val);
this.textBlock1.Text = msg;
}
}
}
上記のコードをコンパイルして実行すると、次の出力が生成されます-
上記のサンプルコードを実行し、他のいくつかのプロパティとイベントを試すことをお勧めします。