private void ElementOnPropertyChanged(object sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case "Checked": Control.IsChecked = Element.Checked; break; case "TextColor": Control.Foreground = new SolidColorBrush(ValueConverters.FormsColorToNative(Element.TextColor)); break; case "FontName": if (!string.IsNullOrEmpty(Element.FontName)) { Control.FontFamily = ValueConverters.StringToFontFamily(Element.FontName); } break; case "FontSize": if (Element.FontSize > 0) { Control.FontSize = (float)Element.FontSize; } break; case "CheckedText": case "UncheckedText": break; default: System.Diagnostics.Debug.WriteLine("Property change for {0} has not been implemented.", e.PropertyName); break; } }
protected override void OnElementChanged(ElementChangedEventArgs <CheckBox> e) { base.OnElementChanged(e); if (e.OldElement != null) { e.OldElement.PropertyChanged -= ElementOnPropertyChanged; } if (Control == null) { var checkBox = new NativeCheckBox(); checkBox.Checked += checkBox_Checked; checkBox.Unchecked += checkBox_Unchecked; SetNativeControl(checkBox); } Control.IsChecked = e.NewElement.Checked; Control.Foreground = new SolidColorBrush(ValueConverters.FormsColorToNative(e.NewElement.TextColor)); if (e.NewElement.FontSize > 0) { Control.FontSize = (float)e.NewElement.FontSize; } if (!string.IsNullOrEmpty(e.NewElement.FontName)) { Control.FontFamily = ValueConverters.StringToFontFamily(e.NewElement.FontName); } Element.CheckedChanged += CheckedChanged; Element.PropertyChanged += ElementOnPropertyChanged; }