コメント
コメントの投稿
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。
public class BaseCheckBox : Button { public BaseCheckBox() { if (Device.OS == TargetPlatform.iOS) base.Image = "unchecked_bk.png"; else { base.Image = "unchecked_wt.png"; } base.Clicked += new EventHandler(OnClicked); base.SizeChanged += new EventHandler(OnSizeChanged); base.BackgroundColor = Color.Transparent; base.BorderWidth = 0; } private void OnSizeChanged(object sender, EventArgs e) { } public static BindableProperty IsCheckedProperty = BindableProperty.Create( propertyName: "IsChecked", returnType: typeof(bool), declaringType: typeof(BaseCheckBox), defaultValue: false, defaultBindingMode: BindingMode.TwoWay, propertyChanged: CheckedValueChanged); public bool IsChecked { get { return (bool)GetValue(IsCheckedProperty); } set { SetValue(IsCheckedProperty, value); OnPropertyChanged(); RaiseCheckedChanged(); } } private static void CheckedValueChanged(BindableObject bindable, object oldValue, object newValue) { if ((bool)newValue == true) { if (Device.OS == TargetPlatform.iOS) { ((BaseCheckBox)bindable).Image = "checked_bk.png"; } else { ((BaseCheckBox)bindable).Image = "checked_wt.png"; } } else { if (Device.OS == TargetPlatform.iOS) { ((BaseCheckBox)bindable).Image = "unchecked_bk.png"; } else { ((BaseCheckBox)bindable).Image = "unchecked_wt.png"; } } } public event EventHandler CheckedChanged; private void RaiseCheckedChanged() { if (CheckedChanged != null) CheckedChanged(this, EventArgs.Empty); } private bool _IsEnabled = true; public virtual new bool IsEnabled { get { return _IsEnabled; } set { _IsEnabled = value; OnPropertyChanged(); if (value == true) { this.Opacity = 1; } else { this.Opacity = 0.5d; } base.IsEnabled = value; } } public void OnEnabled_Changed() { } public void OnClicked(object sender, EventArgs e) { IsChecked = !IsChecked; } }
※名前とタイトルが入力されていないコメントでは他のコメントとの区別ができません。
入力されていないコメントには返信しませんのであらかじめご了承くださいませ。