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。
シニア番号 | プロパティと説明 |
---|---|
1 | Header コントロールのヘッダーのコンテンツを取得または設定します。 |
2 | HeaderProperty ヘッダー依存関係プロパティを識別します。 |
3 | HeaderTemplate コントロールのヘッダーのコンテンツを表示するために使用されるDataTemplateを取得または設定します。 |
4 | HeaderTemplateProperty HeaderTemplate依存関係プロパティを識別します。 |
5 | IntermediateValue 値がティック値またはステップ値にスナップされる前に、ユーザーがスライダーを操作しているときにスライダーの値を取得または設定します。SnapsToプロパティは、スライダーの値を指定します。 |
6 | IntermediateValueProperty IntermediateValue依存関係プロパティを識別します。 |
7 | IsDirectionReversed 値の増加方向を示す値を取得または設定します。 |
8 | IsDirectionReversedProperty IsDirectionReversed依存関係プロパティを識別します。 |
9 | IsThumbToolTipEnabled スライダーのThumbコンポーネントのツールチップにスライダーの値を表示するかどうかを決定する値を取得または設定します。 |
10 | IsThumbToolTipEnabledProperty IsThumbToolTipEnabled依存関係プロパティを識別します。 |
11 | Orientation スライダーの方向を取得または設定します。 |
12 | OrientationProperty Orientation依存関係プロパティを識別します。 |
13 | StepFrequency ステップを作成する必要がある値の範囲の値の部分を取得または設定します。 |
14 | StepFrequencyProperty StepFrequency依存関係プロパティを識別します。 |
15 | ThumbToolTipValueConverter スライダーの範囲値をツールチップコンテンツに変換するコンバーターロジックを取得または設定します。 |
16 | ThumbToolTipValueConverterProperty ThumbToolTipValueConverter依存関係プロパティを識別します。 |
17 | TickFrequency ティックを作成する必要がある値の範囲の増分を取得または設定します。 |
18 | TickFrequencyProperty TickFrequency依存関係プロパティを識別します。 |
19 | TickPlacement トラックに関連して目盛りを描画する場所を示す値を取得または設定します。 |
20 | TickPlacementProperty TickPlacement依存関係プロパティを識別します。 |
以下に一般的に使用されるものを示します events に Slider クラス。
シニア番号 | イベントと説明 |
---|---|
1 | ManipulationCompleted UIElementの操作が完了したときに発生します。(UIElementから継承) |
2 | ManipulationDelta 操作中に入力デバイスの位置が変わったときに発生します。(UIElementから継承) |
3 | ManipulationInertiaStarting 操作中に入力デバイスがUIElementオブジェクトとの接触を失い、慣性が開始した場合に発生します。(UIElementから継承) |
4 | ManipulationStarted 入力デバイスがUIElementの操作を開始したときに発生します。(UIElementから継承) |
5 | ManipulationStarting 操作プロセッサが最初に作成されたときに発生します。(UIElementから継承) |
6 | ValueChanged 範囲の値が変更されたときに発生します。(RangeBaseから継承) |
以下に一般的に使用されるものを示します methods in スライダークラス。
シニア番号 | 方法と説明 |
---|---|
1 | OnManipulationCompleted ManipulationCompletedイベントが発生する前に呼び出されます。(コントロールから継承) |
2 | OnManipulationDelta ManipulationDeltaイベントが発生する前に呼び出されます。(コントロールから継承) |
3 | OnManipulationInertiaStarting ManipulationInertiaStartingイベントが発生する前に呼び出されます。(コントロールから継承) |
4 | OnManipulationStarted ManipulationStartedイベントが発生する前に呼び出されます。(コントロールから継承) |
5 | OnManipulationStarting ManipulationStartingイベントが発生する前に呼び出されます。(コントロールから継承) |
6 | OnMaximumChanged Maximumプロパティが変更されたときに呼び出されます。(RangeBaseから継承) |
7 | OnMinimumChanged 最小プロパティが変更されたときに呼び出されます。(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>
以下は value changed event 実装はC#です。
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;
}
}
}
}
上記のコードをコンパイルして実行すると、次の出力が表示されます。ご覧のとおり、スライダーを左から右に動かすと、楕円の幅が広がります。