private void setLeftImage(MyPickerDateRenderer myPickerDateRenderer) { if (myPickerDateRenderer.SourceImageLeft != "") { CGRect cGRect = new CGRect(myPickerDateRenderer.BoundsImageLeft.X, myPickerDateRenderer.BoundsImageLeft.Y, myPickerDateRenderer.BoundsImageLeft.Width + 20, myPickerDateRenderer.BoundsImageLeft.Height); var view = new UIView(cGRect); var imageView = new UIImageView(); UIImage image = UIImage.FromFile(myPickerDateRenderer.SourceImageLeft); if (image != null) { if (myPickerDateRenderer.ImageLeftColor != Color.Transparent) { imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); imageView.TintColor = (myPickerDateRenderer.ImageLeftColor.ToUIColor()); } else { imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); } CGRect cGRectImage = new CGRect(myPickerDateRenderer.BoundsImageLeft.X + 10, myPickerDateRenderer.BoundsImageLeft.Y, myPickerDateRenderer.BoundsImageLeft.Width, myPickerDateRenderer.BoundsImageLeft.Height); imageView.Frame = cGRectImage; view.AddSubview(imageView); Control.LeftView = view; Control.LeftViewMode = UITextFieldViewMode.Always; } } }
void SetDrawable(MyPickerDateRenderer myPickerDateRenderer) { var gradientDrawable = new GradientDrawable(); gradientDrawable.SetColor(myPickerDateRenderer.StaticColor.ToAndroid()); switch (myPickerDateRenderer.TypeBorder) { case TypeBorder.All: gradientDrawable.SetCornerRadii(new float[] { 80, 80, 80, 80, 80, 80, 80, 80 }); break; case TypeBorder.Left: gradientDrawable.SetCornerRadii(new float[] { 80, 80, 0, 0, 0, 0, 80, 80 }); break; case TypeBorder.Right: gradientDrawable.SetCornerRadii(new float[] { 0, 0, 80, 80, 80, 80, 0, 0 }); break; case TypeBorder.Down: gradientDrawable.SetCornerRadii(new float[] { 0, 0, 0, 0, 80, 80, 80, 80 }); break; case TypeBorder.Up: gradientDrawable.SetCornerRadii(new float[] { 80, 80, 80, 80, 0, 0, 0, 0 }); break; } Control.SetBackground(gradientDrawable); }
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName.Equals(MyPickerDateRenderer.StaticColorProperty.PropertyName)) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; GradientDrawable gradientDrawable = (GradientDrawable)Control.Background; gradientDrawable.SetColor(myPickerDateRenderer.StaticColor.ToAndroid()); } }
protected override void OnElementChanged(ElementChangedEventArgs <Xamarin.Forms.DatePicker> e) { base.OnElementChanged(e); if ((Control != null) && (e.OldElement == null)) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; SetDrawable(myPickerDateRenderer); Drawable imageLeft = SetLeftImage(myPickerDateRenderer); Drawable imageRight = SetRightImage(myPickerDateRenderer); Control.SetCompoundDrawables(imageLeft, null, imageRight, null); //Control.Gravity = GravityFlags.Center; Control.CompoundDrawablePadding = 20; } }
Drawable SetRightImage(MyPickerDateRenderer myPickerDateRenderer) { if (myPickerDateRenderer.SourceImageRight != "") { Drawable image = Context.GetDrawable(myPickerDateRenderer.SourceImageRight); if (image != null) { if (myPickerDateRenderer.ImageRightColor != Color.Transparent) { image.SetColorFilter(myPickerDateRenderer.ImageRightColor.ToAndroid(), PorterDuff.Mode.SrcIn); } image.SetBounds((int)myPickerDateRenderer.BoundsImageRight.X + 5, (int)myPickerDateRenderer.BoundsImageRight.Y, (int)myPickerDateRenderer.BoundsImageRight.Width * 2, (int)myPickerDateRenderer.BoundsImageRight.Height * 2); } return(image); } return(null); }
private void setRightImage(MyPickerDateRenderer myPickerDateRenderer) { if (myPickerDateRenderer.SourceImageRight != "") { CGRect cGRect = new CGRect(myPickerDateRenderer.BoundsImageRight.X, myPickerDateRenderer.BoundsImageRight.Y, myPickerDateRenderer.BoundsImageRight.Width + 20, myPickerDateRenderer.BoundsImageRight.Height); var view = new UIView(cGRect); var imageView = new UIImageView(); UIImage image = UIImage.FromFile(myPickerDateRenderer.SourceImageRight); if (image != null) { if (myPickerDateRenderer.ImageRightColor != Color.Transparent) { imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate); imageView.TintColor = (myPickerDateRenderer.ImageRightColor.ToUIColor()); } else { imageView.Image = image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); } CGRect cGRectImage = new CGRect(myPickerDateRenderer.BoundsImageRight.X + 10, myPickerDateRenderer.BoundsImageRight.Y, myPickerDateRenderer.BoundsImageRight.Width, myPickerDateRenderer.BoundsImageRight.Height); imageView.Frame = cGRectImage; view.AddSubview(imageView); Control.RightView = view; Control.RightViewMode = UITextFieldViewMode.Always; if (myPickerDateRenderer.IsHelp) { UITapGestureRecognizer tapGesture = new UITapGestureRecognizer(HelpClicked); Control.RightView.AddGestureRecognizer(tapGesture); } if (myPickerDateRenderer.IsEraser) { UITapGestureRecognizer tapGesture = new UITapGestureRecognizer(XClicked); Control.RightView.AddGestureRecognizer(tapGesture); } } } }
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { base.OnElementPropertyChanged(sender, e); if (e.PropertyName.Equals(MyPickerDateRenderer.StaticColorProperty.PropertyName)) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; Control.BackgroundColor = myPickerDateRenderer.StaticColor.ToUIColor(); } else if (e.PropertyName.Equals(MyPickerRenderer.ImageLeftColorProperty.PropertyName)) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; try { UIImageView uIImageView = (UIImageView)Control.LeftView.Subviews[0]; uIImageView.TintColor = (myPickerDateRenderer.ImageLeftColor.ToUIColor()); } catch { } } else if (e.PropertyName.Equals(MyPickerRenderer.ImageRightColorProperty.PropertyName)) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; try { UIImageView uIImageView = (UIImageView)Control.RightView.Subviews[0]; uIImageView.TintColor = (myPickerDateRenderer.ImageRightColor.ToUIColor()); } catch { } } else if (e.PropertyName.Equals(MyPickerDateRenderer.SourceImageRightProperty.PropertyName)) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; setRightImage(myPickerDateRenderer); } else if (e.PropertyName.Equals(MyPickerDateRenderer.IsEraserProperty.PropertyName)) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; setRightImage(myPickerDateRenderer); } }
protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e) { base.OnElementChanged(e); if (e.OldElement == null) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; TypeBorder = myPickerDateRenderer.TypeBorder; Control.BackgroundColor = myPickerDateRenderer.StaticColor.ToUIColor(); Control.Layer.BorderWidth = 0; Control.BorderStyle = UITextBorderStyle.None; Control.Layer.MasksToBounds = true; if (myPickerDateRenderer.SourceImageLeft != "") { setLeftImage(myPickerDateRenderer); } if (myPickerDateRenderer.IsHelp) { myPickerDateRenderer.SourceImageRight = "help2.png"; myPickerDateRenderer.BoundsImageRight = new Rectangle(0, 0, 25, 25); setRightImage(myPickerDateRenderer); } if (myPickerDateRenderer.IsEraser) { myPickerDateRenderer.SourceImageRight = "x"; myPickerDateRenderer.BoundsImageRight = new Rectangle(0, 0, 25, 25); setRightImage(myPickerDateRenderer); } if (!string.IsNullOrWhiteSpace(myPickerDateRenderer.Placeholder)) { Control.Text = myPickerDateRenderer.Placeholder; } } }
public void XClicked(NSObject sender) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; Control.Text = "borrado"; }
public void HelpClicked(NSObject sender) { MyPickerDateRenderer myPickerDateRenderer = (MyPickerDateRenderer)Element; myPickerDateRenderer.DisplayAlertEntry(); }