04.スライダーの配置方向を設定する
Sliderコントロールは、既定で横方向に配置されますが、Orientationプロパティを使用することで配置方向を変更することが可能です。
OrientationプロパティにはOrientation列挙体の値を指定します。
メンバ名 | 説明 |
---|---|
Horizontal | 横方向 |
Vertical | 縦方向 |
下記の例では、ラジオボタン[横]をクリックすると横方向に、ラジオボタン[縦]をクリックすると縦方向にSliderコントロールを配置します。
<StackPanel> <Grid Height="32"> <RadioButton Content="横" Height="16" HorizontalAlignment="Left" Margin="6,6,0,0" Name="RadioButton1" VerticalAlignment="Top" /> <RadioButton Content="縦" Height="16" Margin="40,6,0,0" Name="RadioButton2" VerticalAlignment="Top" HorizontalAlignment="Left" /> </Grid> <!-- スライダーを横方向に配置 --> <Slider Name="Slider1" Width="220" Height="220" Orientation="Horizontal"/> </StackPanel>
' スライダーを横方向にする Private Sub RadioButton1_Checked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles RadioButton1.Checked Slider1.Orientation = Orientation.Horizontal End Sub ' スライダーを縦方向にする Private Sub RadioButton2_Checked(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles RadioButton2.Checked Slider1.Orientation = Orientation.Vertical End Sub
// スライダーを横方向にする private void radioButton1_Checked(object sender, RoutedEventArgs e) { slider1.Orientation = Orientation.Horizontal; } // スライダーを縦方向にする private void radioButton2_Checked(object sender, RoutedEventArgs e) { slider1.Orientation = Orientation.Vertical; }
スライダーの配置方向を設定するにはOrientationプロパティを使用する。
05.値を増加させる方向を反転する
値を増加させる方向を反転するにはIsDirectionReversedプロパティにTrueを設定します。IsDirectionReservedプロパティにTrueを設定すると、右に行くほど値が小さくなります。
下記は、値を増加させる方向を反転する例です。
<StackPanel> <Slider Name="Slider1" VerticalAlignment="Top" Minimum="0" Maximum="100" TickPlacement="BottomRight" TickFrequency="10" AutoToolTipPlacement="BottomRight" IsDirectionReversed="True" Value="0"/> </StackPanel>
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded ' 値の増加方向を反転する Slider1.IsDirectionReversed = True End Sub
private void Window_Loaded(object sender, RoutedEventArgs e) { // 値の増加方向を反転する slider1.IsDirectionReversed = true; }
値を増加させる方向を反転させるにはIsDirectionReservedプロパティを使用する。
06.スライダーでイメージを拡大/縮小表示する
バインディングを利用してイメージの拡大縮小をする例を紹介します。
まず、イメージを表示するにはImage要素を使用します。このImage要素に対してScaleTranformクラスを使用すると、イメージの拡大/縮小を行うことが可能になります。
横方向の拡大率はScaleXプロパティを、縦方向の拡大率はScaleYプロパティを設定するのですが、ここでSliderコントロールのValueプロパティをバインディングすることで、Sliderの値を使用してイメージを拡大/縮小させることができるようになります。
下記はSliderの最小値を1に、最大値を200にすることで、1%~200%までの拡大/縮小を行えるようにする例です。
<StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Margin="5,5,10,5">拡大</TextBlock> <!-- 拡大率の値とSlider1のValueをバインド--> <TextBlock Margin="5,5,0,5" Text="{Binding Path=Value, ElementName=Slider1, Mode=OneWay}"/> <TextBlock Margin="0,5">%</TextBlock> </StackPanel> <Slider x:Name="Slider1" Orientation="Horizontal" Minimum="1" Maximum="200" Value="100"/> <!-- チューリップを表示 --> <Image Source="images/Tulips.jpg" RenderTransformOrigin="0, 0"> <Image.RenderTransform> <TransformGroup> <ScaleTransform ScaleX="0.01" ScaleY="0.01"/> <ScaleTransform> <ScaleTransform.ScaleX> <!-- X方向の拡大率をSlider1のValueをバインド --> <Binding ElementName="Slider1" Path="Value" Mode="OneWay"/> </ScaleTransform.ScaleX> <ScaleTransform.ScaleY> <!-- Y方向の拡大率をSlider1のValueをバインド --> <Binding ElementName="Slider1" Path="Value" Mode="OneWay"/> </ScaleTransform.ScaleY> </ScaleTransform> </TransformGroup> </Image.RenderTransform> </Image> </StackPanel>
Sliderコントロールを使用してイメージの拡大/縮小を行うには、Image要素で、TransFormのScaleXおよびScaleYを設定する。