今回はRepeatButton(System.Windows.Controls.RepeatButton)です。
まずはMSDNの説明を見てみましょう。

コントロールが押されてから離されるまで、その Click イベントを繰り返し発生させるコントロール

説明の通り、RepeatButtonコントロールはボタンを押下中に連続してClickイベントを発生させるコントロールです。
まずは実装例を見てみましょう。

- XAML -
<Window x:Class="Window1"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Title="Window1" SizeToContent="WidthAndHeight">
    <StackPanel>
        <Slider Name="Sample_Slider" Minimum="0" Maximum="10" Margin="5" />
        <StackPanel Orientation="Horizontal">
            <RepeatButton Delay="1000" Interval="1000"
                Margin="5" Click="Down_Click" Width="60"></RepeatButton>
            <RepeatButton Delay="1000" Interval="1000"
                Margin="5" Click="Up_Click" Width="60"></RepeatButton>
        </StackPanel>
    </StackPanel>
</Window>

- VB -
Class Window1
    Private Sub Down_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        Sample_Slider.Value -= 1
    End Sub
 
    Private Sub Up_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
        Sample_Slider.Value += 1
    End Sub
End Class
- C# -
public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
    }
 
    private void Down_Click(object sender, RoutedEventArgs e)
    {
        Sample_Slider.Value--;
    }
 
    private void Up_Click(object sender, RoutedEventArgs e)
    {
        Sample_Slider.Value++;
    }
}



RepeatButtonにはボタン押下後のClickイベントが発生するまでの時間(ミリ秒単位)を設定するDelayプロパティと、Clickイベントの繰り返し間隔の時間(ミリ秒単位)を設定するIntervalプロパティがあります。
上記例では2つのRepeatButtonにDelayプロパティとIntervalプロパティに1秒の時間を設定しています。簡単にその効果を出すために、Sliderコントロールを配置し、各RepeatButtonのClickイベントハンドラにてSliderコントロールの値を加減しています。実装例の画像では丁度5秒経過した時点でボタン押下を止めた画像です。

RepeatButtonコントロールは連続するClickイベントの特性を活かして、ボリュームコントロールのボタン等に使用される事があります。
実装例からも分かるとおり、とても簡単なコントロールです。

今回は「RepeatButton」コントロールでした。

to be continue・・・
コメントの入力
タイトル
名前
Url
コメント