protected override void OnElementChanged(ElementChangedEventArgs <TimePicker> e) { base.OnElementChanged(e); if (e.OldElement == null) { Control.Background = null; var layoutParams = new MarginLayoutParams(Control.LayoutParameters); layoutParams.SetMargins(0, 0, 0, 0); LayoutParameters = layoutParams; Control.LayoutParameters = layoutParams; Control.SetPadding(0, 0, 0, 0); SetPadding(0, 0, 0, 0); BorderlessTimePicker element = Element as BorderlessTimePicker; if (element.Time == TimeSpan.Zero && !String.IsNullOrEmpty(element.Placeholder)) { Control.Text = element.Placeholder; textColor = element.TextColor; placeholderColor = element.PlaceholderColor == default(Color) ? textColor : element.PlaceholderColor; element.TextColor = placeholderColor; Control.TextChanged += Control_TextChanged; } } }
protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.TimePicker> e) { base.OnElementChanged(e); element = (BorderlessTimePicker)this.Element; if (Control != null && this.Element != null && !string.IsNullOrEmpty(element.Image)) { } if (e.OldElement == null && !string.IsNullOrEmpty(element.Image)) { Control.Background = null; var layoutParams = new MarginLayoutParams(Control.LayoutParameters); layoutParams.SetMargins(0, 0, 0, 0); LayoutParameters = layoutParams; Control.LayoutParameters = layoutParams; Control.SetPadding(0, 0, 0, 0); SetPadding(0, 0, 0, 0); Control.Background = AddPickerStyles(element.Image); } }
protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.TimePicker> e) { base.OnElementChanged(e); TimePickerDialogIntervals timePickerDlg = new TimePickerDialogIntervals(this.Context, new EventHandler <TimePickerDialogIntervals.TimeSetEventArgs>(UpdateDuration), Element.Time.Hours, Element.Time.Minutes, false); //if (e.OldElement == null) //{ // //Control.Background = null; // //string fontFamily = e.NewElement?.FontFamily; // //if (!string.IsNullOrEmpty(fontFamily)) // //{ // // var label = (TextView)Control; // for example // // Typeface font = Typeface.CreateFromAsset(Forms.Context.Assets, fontFamily + ".otf"); // // label.Typeface = font; // //} // //var layoutParams = new MarginLayoutParams(Control.LayoutParameters); // //layoutParams.SetMargins(0, 0, 0, 0); // //LayoutParameters = layoutParams; // //Control.LayoutParameters = layoutParams; // //Control.SetPadding(0, 0, 0, 0); // //SetPadding(0, 0, 0, 0); // //BorderlessTimePicker element = Element as BorderlessTimePicker; // //if (!string.IsNullOrWhiteSpace(element.Placeholder)) // //{ // // Control.Text = element.Placeholder; // //} // //this.Control.TextChanged += (sender, arg) => // //{ // // var selectedTime = arg.Text.ToString(); // // if (selectedTime == element.Placeholder) // // { // // Control.Text = DateTime.Now.TimeOfDay.ToString(); // // } // //}; // var control = new EditText(this.Context); // control.Focusable = false; // control.FocusableInTouchMode = false; // control.Clickable = false; // control.Click += (sender, ea) => timePickerDlg.Show(); // control.Text = Element.Time.Hours.ToString("00") + ":" + Element.Time.Minutes.ToString("00"); // var layoutParams = new MarginLayoutParams(Control.LayoutParameters); // layoutParams.SetMargins(0, 0, 0, 0); // LayoutParameters = layoutParams; // control.LayoutParameters = layoutParams; // control.SetPadding(0, 0, 0, 0); // SetPadding(0, 0, 0, 0); // string fontFamily = e.NewElement?.FontFamily; // if (!string.IsNullOrEmpty(fontFamily)) // { // var label = (TextView)Control; // for example // Typeface font = Typeface.CreateFromAsset(Forms.Context.Assets, fontFamily + ".otf"); // label.Typeface = font; // } // SetNativeControl(control); //} void UpdateDuration(object sender, Android.App.TimePickerDialog.TimeSetEventArgs e) { int min = e.Minute; if (e.Minute > 60) { min = e.Minute % 60; min = 60 - min; } Element.Time = new TimeSpan(e.HourOfDay, min, 0); if (Element.Time.Hours < 12) { Control.Text = Element.Time.Hours.ToString("00") + ":" + Element.Time.Minutes.ToString("00") + " AM"; } else if (Element.Time.Hours == 12) { Control.Text = Element.Time.Hours.ToString("00") + ":" + Element.Time.Minutes.ToString("00") + " PM"; } else { Control.Text = (Element.Time.Hours - 12).ToString("00") + ":" + Element.Time.Minutes.ToString("00") + "PM"; } } if (e.OldElement == null) { Control.Background = null; string fontFamily = e.NewElement?.FontFamily; if (!string.IsNullOrEmpty(fontFamily)) { var label = (TextView)Control; // for example Typeface font = Typeface.CreateFromAsset(Forms.Context.Assets, fontFamily + ".otf"); label.Typeface = font; } var layoutParams = new MarginLayoutParams(Control.LayoutParameters); layoutParams.SetMargins(0, 0, 0, 0); LayoutParameters = layoutParams; Control.LayoutParameters = layoutParams; Control.SetPadding(0, 0, 0, 0); Control.Click += (sender, ea) => timePickerDlg.Show(); SetPadding(0, 0, 0, 0); BorderlessTimePicker element = Element as BorderlessTimePicker; if (!string.IsNullOrWhiteSpace(element.Placeholder)) { Control.Text = element.Placeholder; } this.Control.TextChanged += (sender, arg) => { var selectedTime = arg.Text.ToString(); if (selectedTime == element.Placeholder) { Control.Text = DateTime.Now.TimeOfDay.ToString(); } }; } }