ONとOFFを切り替える
切り替えスイッチみたいなの。インジケータやcBotで起動中にOnOff切り替えたいものに使えそうです。ただ押されてる状態かどうかイマイチわかりにくい気がします。
ToggleButtonクラス
見た目はただのボタンっぽいですが、OnとOffの状態を持ちます。
public class ToggleButton : Control
例によってControlから継承されてます。
プロパティ
(string) Text {get; set;}
ボタンに表示するテキストを取得、設定します。
(bool) IsChecked {get; set;}
ボタンの状態を取得、設定します。
(CornerRadius) CornerRadius {get; set;}
ボタンの角の丸みを取得、設定します。
(Color) BorderColor {get; set;}
枠線の色を取得、設定します。これを設定しても、BorderThicknessを設定しないと、通常時は見えません。押したときに周りがこの色になるだけです。
(Thickness) BorderThickness {get; set;}
枠線の太さを取得、設定します。これを設定するとボタン押したときのモーションが消えます。
(ControlBase) Content {get; set;}
ボタンの中に表示させるコントロールを取得、設定します。これが設定されてるとTextは表示されません。
ControlBase, Controlのプロパティ
表示位置、サイズ、色などの基本設定はこっちです。
イベント
マウスクリックの際はClickとChecked両方のイベントが起きます。
Click
クリックされた。
Checked
Onにされた。
Unchecked
Offにされた。
サンプルコード
var toggle = new ToggleButton {
Text = "Off",
IsChecked = false,
BorderColor = Color.Pink,
BorderThickness = 1,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
};
toggle.Checked += (args => args.ToggleButton.Text = "On");
toggle.Unchecked += (args => args.ToggleButton.Text= "Off");
Chart.AddControl(toggle);
見た目はこう。ちなみにBackgroundColorを設定するとボタン色でOnとOffの見分けがつかなくなります。不便。
ToggleButtonEventArgsクラス
トグルボタンイベントで呼ばれるコールバックの引数の型です。どのボタンが押されたかわかります。
public class ToggleButtonEventArgs : Object
プロパティ
(ToggleButton) ToggleButton
押されたボタンを取得します。