private void AddClearButton() { var originalToolbar = this.Control.InputAccessoryView as UIToolbar; if (originalToolbar != null && originalToolbar.Items.Length <= 2) { var clearButton = new UIBarButtonItem("Clear", UIBarButtonItemStyle.Plain, ((sender, ev) => { CustomDatePicker baseDatePicker = this.Element as CustomDatePicker; this.Element.Unfocus(); this.Element.Date = DateTime.Now; baseDatePicker.CleanDate(); })); var newItems = new List <UIBarButtonItem>(); foreach (var item in originalToolbar.Items) { newItems.Add(item); } newItems.Insert(0, clearButton); originalToolbar.Items = newItems.ToArray(); originalToolbar.SetNeedsDisplay(); } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); if (Control != null) { Control.SetBackgroundColor(global::Android.Graphics.Color.White); this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions); Control.SetHintTextColor(ColorStateList.ValueOf(global::Android.Graphics.Color.Blue)); Control.SetPadding(Control.PaddingLeft, Control.PaddingTop, Control.PaddingRight, 7); CustomDatePicker element = Element as CustomDatePicker; if (!string.IsNullOrWhiteSpace(element.Placeholder)) { Control.SetTextColor(global::Android.Graphics.Color.Gray); Control.Text = element.Placeholder; } this.Control.TextChanged += (sender, arg) => { var selectedDate = arg.Text.ToString(); if (selectedDate == element.Placeholder) { Control.Text = DateTime.Now.ToString("dd/MM/yyyy"); } this.Control.SetTextColor(this.Element.TextColor.ToAndroid(Xamarin.Forms.Color.FromHex("#000000"))); }; } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); if (e.NewElement != null) { var view = (Element as CustomDatePicker); if (view != null) { view.BackgroundColor = Xamarin.Forms.Color.Transparent; SetFontSize(view); customDatePicker = view; } //Control.Layer.BorderWidth = 1f; //Control.Layer.CornerRadius = 3f; //Control.Layer.BorderColor = Xamarin.Forms.Color.FromHex("#3D95AD").ToCGColor(); Control.BorderStyle = UITextBorderStyle.None; Control.TextColor = UIKit.UIColor.FromRGB(0, 0, 0); Control.TintColor = UIKit.UIColor.FromRGB(158, 158, 158); Control.Font = UIFont.FromName("Roboto-Regular", Control.Font.PointSize); Control.Background = null; //Control.LeftView = new UIView(new CGRect(5, 10, 5, 10)); //Control.LeftViewMode = UITextFieldViewMode.Always; //Control.RightView = new UIView(new CGRect(0, 0, 5, 0)); //Control.RightViewMode = UITextFieldViewMode.Always; } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); if (Control != null) { Control.Layer.BorderWidth = 0; Control.BorderStyle = UITextBorderStyle.None; picker = Element as CustomDatePicker; if (!string.IsNullOrWhiteSpace(picker.Placeholder)) { Control.Text = picker.Placeholder; } Control.ShouldEndEditing += (textField) => { var seletedDate = (UITextField)textField; var text = seletedDate.Text; if (picker != null) { if (text == picker.Placeholder) { Control.Text = picker.Placeholder; } } return(true); }; } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); GradientDrawable gd = new GradientDrawable(); gd.SetCornerRadius(30f); //increase or decrease to changes the corner look gd.SetColor(Android.Graphics.Color.Transparent); gd.SetStroke(5, Android.Graphics.Color.ParseColor("#3cc5d5")); this.Control.SetBackgroundColor(Android.Graphics.Color.Transparent); this.Control.SetPadding(50, 30, 50, 30); this.Control.SetBackgroundDrawable(gd); CustomDatePicker element = Element as CustomDatePicker; if (!string.IsNullOrWhiteSpace(element.Placeholder)) { Control.Text = element.Placeholder; } this.Control.TextChanged += (sender, arg) => { var selectedDate = arg.Text.ToString(); if (selectedDate == element.Placeholder) { Control.Text = DateTime.Now.ToString("MM/dd/yyyy"); } }; }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); if (e.NewElement != null && Control != null) { //this.Control.Text = Element.Date.ToString("MM/dd/yy", CultureInfo.InvariantCulture)?.Replace("-", "/"); Control.BorderStyle = UITextBorderStyle.RoundedRect; Control.Layer.BorderColor = UIColor.FromRGB(83, 63, 149).CGColor; Control.Layer.CornerRadius = 20; UIView paddingView = new UIView(new CGRect(0, 0, 10.0f, 20.0f)); Control.LeftView = paddingView; Control.Layer.BorderWidth = 0f; Control.AdjustsFontSizeToFitWidth = true; Control.TextColor = UIColor.FromRGB(83, 63, 149); var customDatePicker = (CustomDatePicker)this.Element; if (!customDatePicker.NullableDate.HasValue) { this.Control.Text = customDatePicker.PlaceHolder; } UITextField entry = Control; UIDatePicker picker = (UIDatePicker)entry.InputView; picker.PreferredDatePickerStyle = UIDatePickerStyle.Wheels; CustomDatePicker baseDatePicker = this.Element as CustomDatePicker; this.Element.Unfocus(); this.Element.Date = DateTime.Now; baseDatePicker.CleanDate(); } }
/// <summary> /// When time field entries change, we can trigger a reevaluation of the page here /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TimeFieldChanged(object sender, EventArgs e) { var timeField = (CustomTimePicker)sender; TimeSpan?time = (TimeSpan?)timeField.NullableDate; int valueId = (int)timeField.ValueId; if (timeField.Mandatory) { var empty = (time == null); Validation[valueId] = !empty; SaveCommand.ChangeCanExecute(); } if (time != null) { CustomStackLayout stack = (CustomStackLayout)timeField.Parent; foreach (var el in stack.Children) { if (el is CustomDatePicker) { CustomDatePicker dp = (CustomDatePicker)el; if (dp.NullableDate == null) { dp.NullableDate = DateTime.Now; } } } } }
/// <summary> /// Clears the date field /// </summary> private void ClearDate(object parameter) { var dic = (Dictionary <String, Object>)parameter; dic.TryGetValue("text", out var textData); TextData text = (TextData)textData; dic.TryGetValue("date", out var dateObj); CustomDatePicker dateField = (CustomDatePicker)dateObj; dic.TryGetValue("time", out var timeObj); CustomTimePicker timeField = (CustomTimePicker)timeObj; dateField.NullableDate = null; timeField.NullableDate = null; DateTime?date = (DateTime?)dateField.NullableDate; int valueId = (int)dateField.ValueId; if (dateField.Mandatory) { var empty = (date == null); Validation[valueId] = !empty; SaveCommand.ChangeCanExecute(); } using (SQLiteConnection conn = new SQLiteConnection(Preferences.Get("databaseLocation", ""))) { text.value = String.Empty; //conn.Update(text); Record.UpdateRecord(text.record_fk); } }
void DateUnfocus(object sender) { var date = sender as CustomDatePicker; foreach (View t in grid.Children) { if (t.StyleId == date.StyleId) { var stack = (StackLayout)t; foreach (View v in stack.Children) { if (v.StyleId == date.StyleId) { string type = v.GetType().ToString(); if (type == "ASolute_Mobile.CustomRenderer.CustomDatePicker") { CustomDatePicker picker = (CustomDatePicker)v; if (picker.Date.ToString("yyyy-MM-dd").Equals(DateTime.Now.ToString("yyyy-MM-dd"))) { picker.NullableDate = picker.Date; } } } } } } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); try { CustomDatePicker element = Element as CustomDatePicker; if (e.NewElement != null) { element = Element as CustomDatePicker; } else { element = e.OldElement as CustomDatePicker; } if (Control != null) { //var element = Element as CustomDatePicker; GradientDrawable gd = new GradientDrawable(); //gd.SetCornerRadius(45); // increase or decrease to changes the corner look gd.SetColor(global::Android.Graphics.Color.Transparent); //gd.SetStroke(2, global::Android.Graphics.Color.Gray); this.Control.SetBackgroundDrawable(gd); this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions); if (!string.IsNullOrWhiteSpace(element.EnterText)) { Control.Text = element.EnterText; } Control.SetHintTextColor(ColorStateList.ValueOf(global::Android.Graphics.Color.Black)); //for placeholder if (element.CustomFontSize != 0.0) { Control.SetTextSize(ComplexUnitType.Dip, element.CustomFontSize); //Control.SetTextSize(Android.Util.ComplexUnitType.Dip, element.CustomFontSize); } if (element.CustomFontFamily == "MontserratBold") { Graphicss.Typeface font = Graphicss.Typeface.CreateFromAsset(Forms.Context.Assets, "Montserrat-Bold.ttf"); Control.Typeface = font; } else if (element.CustomFontFamily == "MontserratLight") { Graphicss.Typeface font = Graphicss.Typeface.CreateFromAsset(Forms.Context.Assets, "Montserrat-Light.ttf"); Control.Typeface = font; } else { Graphicss.Typeface font = Graphicss.Typeface.CreateFromAsset(Forms.Context.Assets, "Montserrat-Regular.ttf"); Control.Typeface = font; } } } catch (Exception ex) { var msg = ex.Message; } //this.Control.InputType = InputTypes.TextVariationPassword; }
async void EntryScan(Image image) { try { var scanPage = new ZXingScannerPage(); await Navigation.PushAsync(scanPage); scanPage.OnScanResult += (result) => { Device.BeginInvokeOnMainThread(async() => { await Navigation.PopAsync(); SfTextInputLayout sfInputText = null; Entry entry = null; CustomDatePicker picker = null; foreach (View t in entryStack.Children) { if (t.StyleId == image.StyleId) { var stack = (StackLayout)t; foreach (View v in stack.Children) { if (v.StyleId == image.StyleId) { string type = v.GetType().ToString(); if (type == "ASolute_Mobile.CustomRenderer.CustomEntry") { CustomEntry customentry = (CustomEntry)v; customentry.Text = result.Text; } else if (type == "Syncfusion.XForms.TextInputLayout.SfTextInputLayout") { sfInputText = (SfTextInputLayout)v; entry = (Entry)sfInputText.InputView; entry.Text = result.Text; } else if (type == "ASolute_Mobile.CustomRenderer.CustomDatePicker") { picker = (CustomDatePicker)v; picker.Date = DateTime.Parse(result.Text); } } } } } }); }; } catch { } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); try { CustomDatePicker element = Element as CustomDatePicker; if (e.NewElement != null) { element = Element as CustomDatePicker; } else { element = e.OldElement as CustomDatePicker; } if (Control != null) { //var element = Element as CustomDatePicker; var textGiven = element.EnterText; Control.BorderStyle = UITextBorderStyle.None; Control.AdjustsFontSizeToFitWidth = true; Control.Layer.CornerRadius = 10; Control.ExclusiveTouch = true; if (!string.IsNullOrWhiteSpace(textGiven)) { Control.Text = textGiven; } Control.TextColor = UIColor.Black; if (element.CustomFontFamily == "MontserratBold") { Control.Font = UIFont.FromName("Montserrat-Bold.ttf", 20.0f); } else if (element.CustomFontFamily == "MontserratLight") { Control.Font = UIFont.FromName("Montserrat-Light.ttf", 20.0f); } else { Control.Font = UIFont.FromName("Montserrat-Regular.ttf", 20.0f); } if (element.CustomFontSize != 0) { UIFont font = Control.Font.WithSize(element.CustomFontSize); Control.Font = font; } else { } } } catch (Exception ex) { var msg = ex.Message; } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); datePicker = Element as CustomDatePicker; datePicker.DateSelected += (sender, arg) => { datePicker.DateSelectedCommand.Execute(datePicker.Date.ToShortDateString()); }; }
/// <summary> /// Checks if the comparer is equal to the new value /// If it is not, store the new value and fire changed subject /// </summary> /// <param name="d"></param> /// <param name="e"></param> private static void SelectedDate_PropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { CustomDatePicker datePicker = d as CustomDatePicker; if (datePicker.comparer != (DateTime)e.NewValue) { datePicker.comparer = (DateTime)e.NewValue; datePicker.dateChangedSubject.OnNext((DateTime)e.NewValue); } }
void SetFontSize(CustomDatePicker view) { if (view.FontSize != Font.Default.FontSize) { Control.Font = UIFont.SystemFontOfSize((System.nfloat)view.FontSize); } else if (view.FontSize == Font.Default.FontSize) { Control.Font = UIFont.SystemFontOfSize(14f); } }
private void SetFontSize(CustomDatePicker view) { if (view.FontSize != Font.Default.FontSize) { Control.SetTextSize(Android.Util.ComplexUnitType.Dip, (float)view.FontSize); } else if (view.FontSize == Font.Default.FontSize) { Control.SetTextSize(Android.Util.ComplexUnitType.Dip, (float)14); } }
protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.DatePicker> e) { base.OnElementChanged(e); CustomDatePicker datePicker = (CustomDatePicker)Element; if (datePicker != null) { Control.SetTextColor(datePicker.TextColor.ToAndroid()); } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); element = (CustomDatePicker)this.Element; if (Control != null && this.Element != null && !string.IsNullOrEmpty(element.Image)) { Control.Background = AddPickerStyles(element.Image); } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); CustomDatePicker picker = (CustomDatePicker)Element; if (picker != null) { Control.TextColor = picker.TextColor.ToUIColor(); } }
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { CustomDatePicker element = Element as CustomDatePicker; base.OnElementPropertyChanged(sender, e); if (Control == null) { return; } UpdateBorders(); }
// Setta il FONT_SIZE private void SetFont(CustomDatePicker datePicker) { UIFont uiFont; if (datePicker.Font != Font.Default && (uiFont = datePicker.Font.ToUIFont()) != null) { Control.Font = uiFont; } else if (datePicker.Font == Font.Default) { Control.Font = UIFont.SystemFontOfSize(17f); } }
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); try { CustomDatePicker element = Element as CustomDatePicker; if (Control != null) { //var element = Element as CustomDatePicker; GradientDrawable gd = new GradientDrawable(); //gd.SetCornerRadius(45); // increase or decrease to changes the corner look gd.SetColor(global::Android.Graphics.Color.Transparent); //gd.SetStroke(2, global::Android.Graphics.Color.Gray); this.Control.SetBackgroundDrawable(gd); this.Control.SetRawInputType(InputTypes.TextFlagNoSuggestions); Control.Gravity = global::Android.Views.GravityFlags.CenterVertical; if (!string.IsNullOrWhiteSpace(element.EnterText)) { //Control.Text = element.EnterText; } Control.SetHintTextColor(ColorStateList.ValueOf(global::Android.Graphics.Color.Black));//for placeholder if (element.CustomFontSize != 0.0) { Control.SetTextSize(ComplexUnitType.Dip, element.CustomFontSize); //Control.SetTextSize(Android.Util.ComplexUnitType.Dip, element.CustomFontSize); } if (element.CustomFontFamily == "Avenir65") { Graphicss.Typeface font = Graphicss.Typeface.CreateFromAsset(Forms.Context.Assets, "AvenirLTStd-Medium.ttf"); Control.Typeface = font; } else if (element.CustomFontFamily == "Avenir45") { Graphicss.Typeface font = Graphicss.Typeface.CreateFromAsset(Forms.Context.Assets, "AvenirLTStd-Book.ttf"); Control.Typeface = font; } else { } } } catch (Exception ex) { var msg = ex.Message; } //this.Control.InputType = InputTypes.TextVariationPassword; }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); CustomDatePicker datePicker = (CustomDatePicker)Element; if (datePicker != null) { Control.BorderThickness = new Windows.UI.Xaml.Thickness(0); SetPlaceholder(datePicker); SetTextColor(datePicker); } }
protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.DatePicker> e) { base.OnElementChanged(e); base.OnElementChanged(e); if (e.NewElement != null) { var view = (CustomDatePicker)Element; if (view.IsCurvedCornersEnabled) { // creating gradient drawable for the curved background var _gradientBackground = new GradientDrawable(); _gradientBackground.SetShape(ShapeType.Rectangle); _gradientBackground.SetColor(view.BackgroundColor.ToAndroid()); // Thickness of the stroke line _gradientBackground.SetStroke(view.BorderWidth, view.BorderColor.ToAndroid()); // Radius for the curves _gradientBackground.SetCornerRadius( DpToPixels(this.Context, Convert.ToSingle(view.CornerRadius))); // set the background of the Control.SetBackground(_gradientBackground); Control.Gravity = GravityFlags.CenterHorizontal; //Control.SetHint(); Control.SetHintTextColor(Android.Graphics.Color.Gray); } CustomDatePicker element = Element as CustomDatePicker; if (!string.IsNullOrWhiteSpace(element.Placeholder)) { Control.Text = element.Placeholder; } this.Control.TextChanged += (sender, arg) => { var selectedDate = arg.Text.ToString(); if (selectedDate == element.Placeholder) { Control.Text = DateTime.Now.ToString("MM/dd/yyyy"); } }; // Set padding for the internal text from border Control.SetPadding( (int)DpToPixels(this.Context, Convert.ToSingle(12)), Control.PaddingTop, (int)DpToPixels(this.Context, Convert.ToSingle(12)), Control.PaddingBottom); } }
public override void Draw(Canvas canvas) { CustomDatePicker customDatePicker = (CustomDatePicker)this.Element; // Create path to clip var path = new Path(); path.AddRoundRect(0, 0, Width, Height, DpToPixels(this.Context, Convert.ToSingle(customDatePicker.CornerRadius)), DpToPixels(this.Context, Convert.ToSingle(customDatePicker.CornerRadius)), Path.Direction.Ccw); canvas.Save(); canvas.ClipPath(path); base.Draw(canvas); }
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (Control == null) { return; } CustomDatePicker datePicker = (CustomDatePicker)Element; if (e.PropertyName == CustomDatePicker.TextColorProperty.PropertyName) { this.Control.SetTextColor(datePicker.TextColor.ToAndroid()); } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); CustomDatePicker datePicker = (CustomDatePicker)Element; if (datePicker != null) { //TOGLIE IL BORDO Control.BorderStyle = UITextBorderStyle.None; Control.Font = UIFont.FromName("Avenir", 14f); SetPlaceholder(datePicker); //SetFont(datePicker); SetTextColor(datePicker); } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); CustomDatePicker datePicker = (CustomDatePicker)Element; if (e.OldElement == null) { Control.Background = null; var layoutParams = new MarginLayoutParams(Control.LayoutParameters); LayoutParameters = layoutParams; Control.LayoutParameters = layoutParams; } }
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); try { CustomDatePicker element = Element as CustomDatePicker; if (Control != null) { //var element = Element as CustomDatePicker; var textGiven = element.EnterText; Control.BorderStyle = UITextBorderStyle.None; Control.AdjustsFontSizeToFitWidth = true; Control.Layer.CornerRadius = 10; Control.ExclusiveTouch = true; if (!string.IsNullOrWhiteSpace(textGiven)) { //Control.Text = textGiven; } Control.TextColor = UIColor.Black; if (element.CustomFontFamily == "Avenir65") { Control.Font = UIFont.FromName("AvenirLTStd-Medium.ttf", 15f); } else if (element.CustomFontFamily == "Avenir45") { Control.Font = UIFont.FromName("AvenirLTStd-Book.ttf", 15f); } else { } if (element.CustomFontSize != 0) { UIFont font = Control.Font.WithSize(element.CustomFontSize); Control.Font = font; } else { } } } catch (Exception ex) { var msg = ex.Message; } }
/// <summary> /// Fill out the date field with today's date /// </summary> private void FillOutDate(object parameter) { var dic = (Dictionary <String, Object>)parameter; dic.TryGetValue("text", out var textData); TextData text = (TextData)textData; dic.TryGetValue("date", out var dateObj); CustomDatePicker dateField = (CustomDatePicker)dateObj; dic.TryGetValue("time", out var timeObj); CustomTimePicker timeField = (CustomTimePicker)timeObj; var dt = DateTime.Now; dateField.NullableDate = dt.Date; timeField.NullableDate = new TimeSpan(dt.TimeOfDay.Hours, dt.TimeOfDay.Minutes, 0); }
public override Android.Views.View OnCreateView(Android.Views.LayoutInflater inflater, Android.Views.ViewGroup container, Bundle savedInstanceState) { int theme = Arguments.GetInt("theme"); int initialYear = Arguments.GetInt("year"); int initialMonth = Arguments.GetInt("month"); int initialDay = Arguments.GetInt("day"); DateTime? minDate = null; DateTime? maxDate = null; if (Arguments.GetLong ("minDate", 0) > 0) { minDate = new DateTime (Arguments.GetLong ("minDate")); } if (Arguments.GetLong ("maxDate", 0) > 0) { maxDate = new DateTime (Arguments.GetLong ("maxDate")); } //获取指定主题样式的上下文 Context contextThemeWrapper = new ContextThemeWrapper( Activity, theme == SlideDateTimePicker.HOLO_DARK ? Android.Resource.Style.ThemeHolo : Android.Resource.Style.ThemeHoloLight); LayoutInflater localInflater = inflater.CloneInContext(contextThemeWrapper); View v = localInflater.Inflate(Resource.Layout.Fragment_Date, container, false); mDatePicker = v.FindViewById<CustomDatePicker>(Resource.Id.datePicker); mDatePicker.Init(initialYear, initialMonth, initialDay, this); mDatePicker.DescendantFocusability = DescendantFocusability.BlockDescendants; if (minDate != null) { mDatePicker.MinDate = ConvertDateTimeLong(minDate.Value); } if (maxDate != null) { mDatePicker.MaxDate = ConvertDateTimeLong(maxDate.Value); } return v; }
void setFontSize(CustomDatePicker datePicker) { }
void SetTextColor(CustomDatePicker datePicker) { this.Control.TextColor = datePicker.TextColor.ToUIColor(); }
void SetBorderStyle(CustomDatePicker datePicker) { this.Control.BorderStyle = (datePicker.HasBorder == true) ? UIKit.UITextBorderStyle.RoundedRect : UIKit.UITextBorderStyle.None; }