WPF

C#WPFの道#13!Buttonに画像と文字を並べる方法とRepeatButtonとToggleButton

ボタンとは?

ボタンはこれまでも使ってきました。基本的にはクリックイベントを実装し、押されたときにデータを保存する処理などを記述します。ここでは、そのボタンの使い方の詳細と種類を見ていきます。

通常のボタン

通常のボタンは基本的にContentに「保存」などの文言を表示して、Clickイベントを実装するという使い方になりますが、WindowsFormsのボタンコントロールとは異なり、Contentが文字だけでなく、StackPanel等を設定できるため、ボタンの文言表示の場所に、画像と文字を並べて表示するという事が、簡単にできるようになりました。

ボタンのContentにStackPanelを設置し、画像とテキストをならべて表示する例

この例では、通常

と定義していた書き方とは異なり、Button.Contentのエリアを作り、その中にStackPanel設置して、横向きに赤丸マークとTextBlockにテキストを”AAA”と表示しています。 このXamlのレイアウトは次のようになります。

RepeatButton

RepeatButtonはボタンを押下している間中、クリックイベントを通知するボタンです。

RepeatButtonを押下し続けると、最初に1回クリックイベントが通知され、その後、Delayに設定されているミリ秒間なにもせず待機されます。Delayミリ秒が経過するとクリックイベントが通知され、その後はIntervalに設定されている値ミリ秒間隔で、クリックイベントが通知され、ボタンの押し下げを止めると、クリックイベントも通知されなくなります。

Interval クリックイベントが通知される間隔(ミリ秒)
Delay リピートを開始するまでの待機時間(ミリ秒)

次の例で、RepeatButtonを押し続けると、最初に1回クリックイベントが通知され、その5秒後から、2秒間隔でクリックイベントが通知され続けます。

ToggleButton

ToggleButtonとは、ボタンを押し下げている状態と押し上げている(何もしていない)状態の2つの状態を表すボタンです。見た目はボタンですが、CheckBoxのチェックありとチェックなしの状態のボタン版と考えていただいてOKです。

サンプルコード

次の例では、ボタンを押すたびに、MyToggleBtton.IsCheckedがTureとFalseに変化し、ボタンはTrueのときは押したままの描画となります。

各種ボタンサンプルコード全体

3種類のボタンのサンプルコードをまとめます。

Xamlレイアウトイメージ

WPFの道!

C#を正しい3層構造で造れてますか?

非売品コースを受け取る