Silverlight-content-model
Silverlight-コンテンツモデル
ボタンは、モデルコンテンツにフォームのコンテンツを提供します。 モデルは、コントロールに多く現れます。 考え方は簡単です。 テキストだけでなく、あらゆるコンテンツを受け入れます。 本当にエキゾチックなボタンを作成したい場合は、テキストボックスやボタンなどの他のコンテンツコントロールを内部に配置することもできます(これらの中に静止要素をネストします)。 そのようなインターフェースが非常に理にかなっていることは疑わしいですが、可能です。
ボタン、内部ボタン、その他のコンテンツコントロールの簡単な例を見てみましょう。
<UserControl x:Class = "ContentModel.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d"
d:DesignHeight = "300" d:DesignWidth = "400">
<Grid x:Name = "LayoutRoot" Background = "White">
<Button Margin = "3" Height = "70" Width = "215">
<Grid Margin = "5">
<Polygon Points = "100,25 125,0 200,25 125,50" Fill = "LightSteelBlue"/>
<Polygon Points = "100,25 75,0 0,25 75,50" Fill = "LightGray"/>
</Grid>
</Button>
</Grid>
</UserControl>
上記のコードをコンパイルして実行すると、次のボタンが表示されます。
RangeControl
スクロールバーとスライダーのコントロールは密接に関連しています。 どちらも、ユーザーが特定の範囲から入力値を選択できるようにします。 従来、これらのコントロールはさまざまなものを意味します。 通常、スクロールバーは陰嚢領域に位置を設定するために使用されますが、スライダーは値または設定を指定するために使用されます。 これらは単なる慣習です。コントロールには同様の動作とAPIがあります。
範囲コントロールは使いやすいです。 スライダーで表現したい値の範囲を示すために、最小値と最大値を指定します。 Value プロパティは、ドラッグの使用が変わると変わります。
- スライダー*クラスの階層的な継承は次のとおりです-
以下に、 Slider で一般的に使用される properties を示します。
Sliderの最も一般的に使用されるプロパティを以下に示します。
Sr. No. | Property & Description |
---|---|
1 |
Header コントロールのヘッダーのコンテンツを取得または設定します。 |
2 |
HeaderProperty Header依存プロパティを識別します。 |
3 |
HeaderTemplate コントロールのヘッダーのコンテンツを表示するために使用されるDataTemplateを取得または設定します。 |
4 |
HeaderTemplateProperty HeaderTemplate依存プロパティを識別します。 |
5 |
IntermediateValue 値がティック値またはステップ値のいずれかにスナップされる前に、ユーザーが操作している間に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 クラスで一般的に使用される events です。
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から継承) |
例
スライダーと楕円が追加され、スライダーが楕円の幅を制御する簡単な例を見てみましょう。
<UserControl x:Class = "SliderExample.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "
http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d" d:DesignWidth = "640" d:DesignHeight = "480">
<Grid x:Name = "LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height = "Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Slider Minimum = "1" Maximum = "400" Value = "1"
ValueChanged = "Slider_ValueChanged"/>
<Ellipse Grid.Row = "1" Fill = "Aqua" Width = "1" x:Name = "myEllipse"/>
</Grid>
</UserControl>
以下に示すのは、C#の value changed event 実装です。
using System.Windows;
using System.Windows.Controls;
namespace SliderExample {
public partial class MainPage : UserControl {
public MainPage() {
InitializeComponent();
}
private void Slider_ValueChanged(object sender,
RoutedPropertyChangedEventArgs<double> e) {
if (myEllipse != null) {
myEllipse.Width = e.NewValue;
}
}
}
}
上記のコードをコンパイルして実行すると、次の出力が表示されます。 ご覧のとおり、スライダーを左から右に動かすと、楕円の幅が広がります。