protected override void OnElementChanged(ElementChangedEventArgs <ExtendedDatePicker> e) { base.OnElementChanged(e); NoCaretField entry = new NoCaretField { BorderStyle = UITextBorderStyle.RoundedRect }; entry.Started += new EventHandler(this.OnStarted); entry.Ended += new EventHandler(this.OnEnded); this.picker = new UIDatePicker { Mode = UIDatePickerMode.Date, TimeZone = new NSTimeZone("UTC") }; float width = UIScreen.MainScreen.Bounds.Width; UIToolbar uIToolbar = new UIToolbar(new RectangleF(0, 0, width, 44)) { BarStyle = UIBarStyle.Default, Translucent = true }; UIBarButtonItem uIBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace); UIBarButtonItem uIBarButtonItem2 = new UIBarButtonItem(UIBarButtonSystemItem.Done, delegate(object o, EventArgs a) { entry.ResignFirstResponder(); }); uIToolbar.SetItems(new UIBarButtonItem[] { uIBarButtonItem, uIBarButtonItem2 }, false); if (Device.Idiom == TargetIdiom.Phone) { entry.InputView = this.picker; entry.InputAccessoryView = uIToolbar; } else { entry.InputView = new UIView(RectangleF.Empty); entry.InputAccessoryView = new UIView(RectangleF.Empty); } base.SetNativeControl(entry); this.UpdateDateFromModel(false); this.UpdateMaximumDate(); this.UpdateMinimumDate(); this.picker.ValueChanged += new EventHandler(this.HandleValueChanged); var view = (ExtendedDatePicker)Element; SetBorder(view); }
//protected void HandleImageDownload() //{ // UIImage img = new UIImage(); // //var webClient = new WebClient(); // //webClient.DownloadDataCompleted += (s, e) => // //{ // // var bytes = e.Result; // get the downloaded data // // string documentsPath = Path.GetTempPath(); //Environment.GetFolderPath(Environment.SpecialFolder.Personal); // // string localFilename = MREditName; // // string localPath = Path.Combine(documentsPath, localFilename); // // File.WriteAllBytes(localPath, bytes); // writes to local storage // // InvokeOnMainThread(() => // // { // // if (!string.IsNullOrEmpty(localPath)) // // { // // var imgView = new UIImageView(contentView.Bounds); // // imgView.Image = UIImage.FromFile(localPath); // // imgView.ContentMode = UIViewContentMode.ScaleAspectFit; // or ScaleAspectFill // // contentView.BackgroundColor = UIColor.FromPatternImage(img); // // } // // }); // //}; // //var url = new Uri(MREditPath); // Html home page // //webClient.DownloadStringAsync(url); // string fileIdentifier = "value to remember"; // string documentsPath = Path.GetTempPath(); // string localFilename = MREditName; // string localFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), localFilename); // WebClient webClient = new WebClient(); // webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadFileCompleted); // webClient.QueryString.Add("file", fileIdentifier); // here you can add values // //webClient.DownloadFileAsync(new Uri((string)MREditPath), localFilePath); // webClient.DownloadFile(new Uri((string)MREditPath), MREditName); //} //private void DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) //{ // string fileIdentifier = ((System.Net.WebClient)(sender)).QueryString["file"]; // // process with fileIdentifier // UIImage img = new UIImage(); // string localFilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), MREditName); // img = UIImage.FromFile(localFilePath); // var imgView = new UIImageView(contentView.Bounds); // imgView.Image = img; // imgView.ContentMode = UIViewContentMode.ScaleAspectFit; // or ScaleAspectFill // contentView.BackgroundColor = UIColor.FromPatternImage(img); //} public override void LoadView() { base.LoadView(); // White view covering entire screen contentView = new UIView(); //{ // BackgroundColor = UIColor.White //}; if (!MREditing) { contentView.BackgroundColor = UIColor.White; filename = "Doctor-Notes" + "_" + doctorId + "-" + patientId + "_" + DateTime.Now.ToString("s").Replace(":", "_") + ".jpg"; } //var img = UIImage.FromFile("dynapadscreenshot.png"); //var imgView = new UIImageView(contentView.Bounds); //imgView.Image = img; //imgView.ContentMode = UIViewContentMode.ScaleAspectFit; // or ScaleAspectFill ////contentView.AddSubview(imgView); ////contentView.SendSubviewToBack(imgView); //contentView.BackgroundColor = UIColor.FromPatternImage(img); if (MREditing) { filename = MREditName + "_" + "edit" + "_" + DateTime.Now.ToString("s").Replace(":", "_") + ".jpg"; //var img = UIImage.FromFile("dynapadscreenshot.png"); UIImage img = new UIImage(); //switch (MREditType) //{ // case "jpg": // case "gif": // case "png": // img = FromUrl(MREditPath); // break; // case "pdf": // case "doc": // case "docx": // var dps = new DynaPadService.DynaPadService(); // //img = dps.ConvertToJPG(CommonFunctions.GetUserConfig(), MREditPath); // break; // default: // img = FromUrl(MREditPath); // break; //} try { loadingOverlay = new LoadingOverlay(contentView.Bounds); contentView.Add(loadingOverlay); ////string localPath = ""; var webClient = new WebClient(); //webClient.DownloadDataCompleted += (s, e) => //{ // var bytes = e.Result; // get the downloaded data // string documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal); //Path.GetTempPath(); //Environment.GetFolderPath(Environment.SpecialFolder.Personal); // string localFilename = MREditName; // string localPath = Path.Combine(documentsPath, localFilename); // File.WriteAllBytes(localPath, bytes); // writes to local storage // InvokeOnMainThread(() => // { // if (!string.IsNullOrEmpty(localPath)) // { // var imgView = new UIImageView(contentView.Bounds); // imgView.Image = UIImage.FromFile(localPath); // imgView.ContentMode = UIViewContentMode.ScaleAspectFit; // or ScaleAspectFill // contentView.BackgroundColor = UIColor.FromPatternImage(img); // } // }); //}; var url = new Uri(MREditPath); // Html home page ////webClient.DownloadStringAsync(url); ////webClient.DownloadFileAsync(url, MREditName); //webClient.DownloadFile(url, Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), MREditName)); ////HandleImageDownload(); //img = UIImage.FromFile(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), MREditName)); //var imgView2 = new UIImageView(contentView.Bounds); //imgView2.Image = UIImage.FromFile(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), MREditName)); //imgView2.ContentMode = UIViewContentMode.ScaleAspectFit; // or ScaleAspectFill //contentView.BackgroundColor = UIColor.White; //contentView.BackgroundColor = UIColor.FromPatternImage(img); var downloadPath = Path.Combine(Path.GetTempPath(), MREditName); var bw = new BackgroundWorker(); // this allows our worker to report progress during work bw.WorkerReportsProgress = true; // what to do in the background thread bw.DoWork += delegate(object o, DoWorkEventArgs argss) { var b = o as BackgroundWorker; webClient.DownloadFile(url, downloadPath); }; // what to do when worker completes its task (notify the user) bw.RunWorkerCompleted += delegate { var imgPath = Path.Combine(Path.GetTempPath(), MREditName); //NSData imageData = NSData.FromArray(UIImage.FromFile(downloadPath).AsJPEG(1).ToArray()); //img = UIImage.FromFile(downloadPath); //img = UIImage.LoadFromData(imageData); img = UIImage.LoadFromData(UIImage.FromFile(downloadPath).AsJPEG(0), 0); var imgView = new UIImageView(contentView.Bounds); imgView.Image = UIImage.LoadFromData(UIImage.FromFile(downloadPath).AsJPEG()); imgView.ContentMode = UIViewContentMode.Center; // or ScaleAspectFill //contentView.BackgroundColor = UIColor.White; contentView.BackgroundColor = UIColor.FromPatternImage(img); }; bw.RunWorkerAsync(); ////img = UIImage.FromFile("dynapadscreenshot.png"); ////img = UIImage.FromFile("telerikautocomplete.png"); ////img = UIImage.FromFile("dynapad_danestreet_screenshot.jpg"); ////img = UIImage.FromFile("Dane Street_COLOR.png"); ////img = UIImage.FromFile("John_Doe_True_sig_2017-05-09T10_59_08.gif"); ////img = UIImage.FromFile(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), MREditName)); ////var imgarray = UIImage.FromFile("John_Doe_True_sig_2017-05-09T10_59_08.gif").AsPNG(); ////var imgarray = UIImage.FromFile(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), MREditName)).AsPNG(); ////img = UIImage.LoadFromData(imgarray); //var imgView = new UIImageView(contentView.Bounds); //imgView.Image = img; //imgView.ContentMode = UIViewContentMode.ScaleAspectFit; // or ScaleAspectFill //contentView.BackgroundColor = UIColor.FromPatternImage(img); } catch (Exception ex) { DismissViewController(true, null); CommonFunctions.sendErrorEmail(ex); PresentViewController(CommonFunctions.ExceptionAlertPrompt(), true, null); } finally { loadingOverlay.Hide(); } } View = contentView; // Vertical UIStackView offset from status bar CGRect rect = UIScreen.MainScreen.Bounds; rect.Y += 20; rect.Height -= 20; UIStackView vertStackView = new UIStackView(rect) { Axis = UILayoutConstraintAxis.Vertical, }; contentView.Add(vertStackView); // Horizontal UIStackView for tools UIStackView horzStackView = new UIStackView { Axis = UILayoutConstraintAxis.Horizontal, Alignment = UIStackViewAlignment.Center, Distribution = UIStackViewDistribution.EqualSpacing }; vertStackView.AddArrangedSubview(horzStackView); // FingerPaintCanvasView for drawing FingerPaintCanvasView canvasView = new FingerPaintCanvasView(); vertStackView.AddArrangedSubview(canvasView); // Add space at left to horizontal UIStackView horzStackView.AddArrangedSubview(new UILabel(new CGRect(0, 0, 10, 10))); // Construct UIPickerView for choosing color, but don't add it to any view PickerDataModel <UIColor> colorModel = new PickerDataModel <UIColor> { Items = { new NamedValue <UIColor>("Red", UIColor.Red), new NamedValue <UIColor>("Green", UIColor.Green), new NamedValue <UIColor>("Blue", UIColor.Blue), //new NamedValue<UIColor>("Cyan", UIColor.Cyan), //new NamedValue<UIColor>("Magenta", UIColor.Magenta), new NamedValue <UIColor>("Yellow", UIColor.Yellow), new NamedValue <UIColor>("Black", UIColor.Black), //new NamedValue<UIColor>("Gray", UIColor.Gray), new NamedValue <UIColor>("White", UIColor.White), new NamedValue <UIColor>("Highlight", UIColor.FromRGBA(255, 0, 255, 0.2f)), new NamedValue <UIColor>("Clear", new UIColor(0, 0)) } }; UIPickerView colorPicker = new UIPickerView { Model = colorModel }; // Ditto for UIPickerView for stroke thickness PickerDataModel <float> thicknessModel = new PickerDataModel <float> { Items = { new NamedValue <float>("Pen", 1), new NamedValue <float>("Thin", 2), new NamedValue <float>("Thinish", 5), new NamedValue <float>("Medium", 10), new NamedValue <float>("Thickish", 20), new NamedValue <float>("Thick", 50) } }; UIPickerView thicknessPicker = new UIPickerView { Model = thicknessModel }; // Create UIToolbar for dismissing picker when it's displayed var toolbar = new UIToolbar(new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, 44)) { BarStyle = UIBarStyle.Default, Translucent = true }; // Set Font to be used in tools UIFont font = UIFont.SystemFontOfSize(24); // Create a NoCaretField text field for invoking color picker & add to horizontal UIStackView // (technique from Xamarin.Forms iOS PickerRenderer UITextField colorTextField = new NoCaretField { Text = "Red", InputView = colorPicker, InputAccessoryView = toolbar, Font = font }; horzStackView.AddArrangedSubview(colorTextField); // Use ValueChanged handler to change the color colorModel.ValueChanged += (sender, args) => { colorTextField.Text = colorModel.SelectedItem.Name; canvasView.StrokeColor = colorModel.SelectedItem.Value.CGColor; }; // Ditto for the thickness UITextField thicknessTextField = new NoCaretField { Text = "Pen", InputView = thicknessPicker, InputAccessoryView = toolbar, Font = font }; horzStackView.AddArrangedSubview(thicknessTextField); thicknessModel.ValueChanged += (sender, args) => { thicknessTextField.Text = thicknessModel.SelectedItem.Name; canvasView.StrokeWidth = thicknessModel.SelectedItem.Value; }; // Now add a Done button to the toolbar to rest text fields var spacer = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace); var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (o, a) => { colorTextField.ResignFirstResponder(); thicknessTextField.ResignFirstResponder(); }); toolbar.SetItems(new[] { spacer, doneButton }, false); // Create the Clear button UIButton button = new UIButton(UIButtonType.RoundedRect) { Font = font }; horzStackView.AddArrangedSubview(button); button.Layer.BorderColor = UIColor.Black.CGColor; button.Layer.BorderWidth = 1; button.Layer.CornerRadius = 10; button.SetTitle("Clear", UIControlState.Normal); button.SetTitleColor(UIColor.Black, UIControlState.Normal); button.TouchUpInside += (sender, args) => { canvasView.Clear(); }; UIButton savebutton = new UIButton(UIButtonType.RoundedRect) { Font = font }; horzStackView.AddArrangedSubview(savebutton); savebutton.Layer.BorderColor = UIColor.Black.CGColor; savebutton.Layer.BorderWidth = 1; savebutton.Layer.CornerRadius = 10; savebutton.SetTitle("Save", UIControlState.Normal); savebutton.SetTitleColor(UIColor.Black, UIControlState.Normal); savebutton.TouchUpInside += SaveButtonAction; UIButton closebutton = new UIButton(UIButtonType.RoundedRect) { Font = font }; horzStackView.AddArrangedSubview(closebutton); closebutton.Layer.BorderColor = UIColor.Black.CGColor; closebutton.Layer.BorderWidth = 1; closebutton.Layer.CornerRadius = 10; closebutton.SetTitle("Close", UIControlState.Normal); closebutton.SetTitleColor(UIColor.Black, UIControlState.Normal); closebutton.TouchUpInside += (sender, args) => { DismissViewController(true, null); }; // Add space at right to horizontal UIStackView horzStackView.AddArrangedSubview(new UILabel(new CGRect(0, 0, 10, 10))); }
public override void ViewDidLoad() { base.ViewDidLoad(); UIView contentView = new UIView() { BackgroundColor = UIColor.White }; View = contentView; CGRect rect = UIScreen.MainScreen.Bounds; rect.Y += 0; rect.Height -= 50; UIStackView vertStackView = new UIStackView(rect) { Axis = UILayoutConstraintAxis.Vertical }; contentView.Add(vertStackView); UIStackView horizStackView = new UIStackView(rect) { Axis = UILayoutConstraintAxis.Horizontal, Alignment = UIStackViewAlignment.Center, Distribution = UIStackViewDistribution.EqualSpacing }; vertStackView.AddArrangedSubview(horizStackView); CanvasView canvasView = new CanvasView(); vertStackView.AddArrangedSubview(canvasView); horizStackView.AddArrangedSubview(new UILabel(new CGRect(0, 0, 10, 10))); PickerDataModel <UIColor> colorModel = new PickerDataModel <UIColor> { Items = { new NamedValue <UIColor>("Rot", UIColor.Red), new NamedValue <UIColor>("Grün", UIColor.Green), new NamedValue <UIColor>("Blau", UIColor.Blue), new NamedValue <UIColor>("Gelb", UIColor.Yellow) } }; UIPickerView colorPicker = new UIPickerView { Model = colorModel }; PickerDataModel <float> thicknessModel = new PickerDataModel <float> { Items = { new NamedValue <float>("Dünn", 2), new NamedValue <float>("Medium", 10), new NamedValue <float>("Dick", 20), new NamedValue <float>("Fett", 50) } }; UIPickerView thicknessPicker = new UIPickerView { Model = thicknessModel }; var toolbar = new UIToolbar(new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, 45)) { BarStyle = UIBarStyle.BlackTranslucent, Translucent = true }; UIFont font = UIFont.SystemFontOfSize(24); UITextField colorTextField = new NoCaretField { Text = "Rot", InputView = colorPicker, InputAccessoryView = toolbar, Font = font }; horizStackView.AddArrangedSubview(colorTextField); colorModel.ValueChanged += (sender, args) => { colorTextField.Text = colorModel.SelectedItem.Name; canvasView.StrokeColor = colorModel.SelectedItem.Value.CGColor; }; UITextField thicknessTextField = new NoCaretField { Text = "Dünn", InputView = thicknessPicker, InputAccessoryView = toolbar, Font = font }; horizStackView.AddArrangedSubview(thicknessTextField); thicknessModel.ValueChanged += (sender, args) => { thicknessTextField.Text = thicknessModel.SelectedItem.Name; canvasView.StrokeWidth = thicknessModel.SelectedItem.Value; }; var spacer = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace); var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (sender, args) => { colorTextField.ResignFirstResponder(); thicknessTextField.ResignFirstResponder(); }); toolbar.SetItems(new[] { spacer, doneButton }, true); UIButton button = new UIButton(UIButtonType.RoundedRect) { Font = font }; horizStackView.AddArrangedSubview(button); button.Layer.BorderColor = UIColor.Blue.CGColor; button.Layer.BorderWidth = 1; button.Layer.CornerRadius = 10; button.SetTitle("Clear", UIControlState.Normal); button.SetTitleColor(UIColor.Black, UIControlState.Normal); button.TouchUpInside += (sender, args) => { canvasView.clear(); }; }
public PickerTableViewCell( string labelName, nfloat?height = null) : base(UITableViewCellStyle.Default, nameof(PickerTableViewCell)) { var descriptor = UIFontDescriptor.PreferredBody; var pointSize = descriptor.PointSize; Label = new UILabel { Text = labelName, TranslatesAutoresizingMaskIntoConstraints = false, Font = UIFont.FromDescriptor(descriptor, 0.8f * pointSize), TextColor = new UIColor(red: 0.47f, green: 0.47f, blue: 0.47f, alpha: 1.0f) }; ContentView.Add(Label); TextField = new NoCaretField { BorderStyle = UITextBorderStyle.None, TranslatesAutoresizingMaskIntoConstraints = false, Font = UIFont.FromDescriptor(descriptor, pointSize) }; var width = (float)UIScreen.MainScreen.Bounds.Width; var toolbar = new UIToolbar(new RectangleF(0, 0, width, 44)) { BarStyle = UIBarStyle.Default, Translucent = true }; var spacer = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace); var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (o, a) => { var s = (PickerSource)Picker.Model; if (s.SelectedIndex == -1 && Items != null && Items.Count > 0) { UpdatePickerSelectedIndex(0); } TextField.Text = s.SelectedItem; TextField.ResignFirstResponder(); }); toolbar.SetItems(new[] { spacer, doneButton }, false); TextField.InputView = Picker; TextField.InputAccessoryView = toolbar; ContentView.Add(TextField); ContentView.AddConstraints(new NSLayoutConstraint[] { NSLayoutConstraint.Create(TextField, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, ContentView, NSLayoutAttribute.Leading, 1f, 15f), NSLayoutConstraint.Create(ContentView, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, TextField, NSLayoutAttribute.Trailing, 1f, 15f), NSLayoutConstraint.Create(ContentView, NSLayoutAttribute.Bottom, NSLayoutRelation.Equal, TextField, NSLayoutAttribute.Bottom, 1f, 10f), NSLayoutConstraint.Create(TextField, NSLayoutAttribute.Top, NSLayoutRelation.Equal, Label, NSLayoutAttribute.Bottom, 1f, 10f), NSLayoutConstraint.Create(Label, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, ContentView, NSLayoutAttribute.Leading, 1f, 15f), NSLayoutConstraint.Create(Label, NSLayoutAttribute.Top, NSLayoutRelation.Equal, ContentView, NSLayoutAttribute.Top, 1f, 10f), NSLayoutConstraint.Create(ContentView, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, Label, NSLayoutAttribute.Trailing, 1f, 15f) }); if (height.HasValue) { ContentView.AddConstraint( NSLayoutConstraint.Create(TextField, NSLayoutAttribute.Height, NSLayoutRelation.Equal, null, NSLayoutAttribute.NoAttribute, 1f, height.Value)); } Picker.Model = new PickerSource(this); }
public override void LoadView() { base.LoadView(); // White view covering entire screen UIView contentView = new UIView() { BackgroundColor = UIColor.White }; View = contentView; // Vertical UIStackView offset from status bar CGRect rect = UIScreen.MainScreen.Bounds; rect.Y += 20; rect.Height -= 20; UIStackView vertStackView = new UIStackView(rect) { Axis = UILayoutConstraintAxis.Vertical, }; contentView.Add(vertStackView); // Horizontal UIStackView for tools UIStackView horzStackView = new UIStackView { Axis = UILayoutConstraintAxis.Horizontal, Alignment = UIStackViewAlignment.Center, Distribution = UIStackViewDistribution.EqualSpacing }; vertStackView.AddArrangedSubview(horzStackView); // FingerPaintCanvasView for drawing FingerPaintCanvasView canvasView = new FingerPaintCanvasView(); vertStackView.AddArrangedSubview(canvasView); // Add space at left to horizontal UIStackView horzStackView.AddArrangedSubview(new UILabel(new CGRect(0, 0, 10, 10))); // Construct UIPickerView for choosing color, but don't add it to any view PickerDataModel <UIColor> colorModel = new PickerDataModel <UIColor> { Items = { new NamedValue <UIColor>("Red", UIColor.Red), new NamedValue <UIColor>("Green", UIColor.Green), new NamedValue <UIColor>("Blue", UIColor.Blue), new NamedValue <UIColor>("Cyan", UIColor.Cyan), new NamedValue <UIColor>("Magenta", UIColor.Magenta), new NamedValue <UIColor>("Yellow", UIColor.Yellow), new NamedValue <UIColor>("Black", UIColor.Black), new NamedValue <UIColor>("Gray", UIColor.Gray), new NamedValue <UIColor>("White", UIColor.White) } }; UIPickerView colorPicker = new UIPickerView { Model = colorModel }; // Ditto for UIPickerView for stroke thickness PickerDataModel <float> thicknessModel = new PickerDataModel <float> { Items = { new NamedValue <float>("Thin", 2), new NamedValue <float>("Thinish", 5), new NamedValue <float>("Medium", 10), new NamedValue <float>("Thickish", 20), new NamedValue <float>("Thick", 50) } }; UIPickerView thicknessPicker = new UIPickerView { Model = thicknessModel }; // Create UIToolbar for dismissing picker when it's displayed var toolbar = new UIToolbar(new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, 44)) { BarStyle = UIBarStyle.Default, Translucent = true }; // Set Font to be used in tools UIFont font = UIFont.SystemFontOfSize(24); // Create a NoCaretField text field for invoking color picker & add to horizontal UIStackView // (technique from Xamarin.Forms iOS PickerRenderer UITextField colorTextField = new NoCaretField { Text = "Red", InputView = colorPicker, InputAccessoryView = toolbar, Font = font }; horzStackView.AddArrangedSubview(colorTextField); // Use ValueChanged handler to change the color colorModel.ValueChanged += (sender, args) => { colorTextField.Text = colorModel.SelectedItem.Name; canvasView.StrokeColor = colorModel.SelectedItem.Value.CGColor; }; // Ditto for the thickness UITextField thicknessTextField = new NoCaretField { Text = "Thin", InputView = thicknessPicker, InputAccessoryView = toolbar, Font = font }; horzStackView.AddArrangedSubview(thicknessTextField); thicknessModel.ValueChanged += (sender, args) => { thicknessTextField.Text = thicknessModel.SelectedItem.Name; canvasView.StrokeWidth = thicknessModel.SelectedItem.Value; }; // Now add a Done button to the toolbar to rest text fields var spacer = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace); var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (o, a) => { colorTextField.ResignFirstResponder(); thicknessTextField.ResignFirstResponder(); }); toolbar.SetItems(new[] { spacer, doneButton }, false); // Create the Clear button UIButton button = new UIButton(UIButtonType.RoundedRect) { Font = font }; horzStackView.AddArrangedSubview(button); button.Layer.BorderColor = UIColor.Black.CGColor; button.Layer.BorderWidth = 1; button.Layer.CornerRadius = 10; button.SetTitle("Clear", UIControlState.Normal); button.SetTitleColor(UIColor.Black, UIControlState.Normal); button.TouchUpInside += (sender, args) => { canvasView.Clear(); }; // Add space at right to horizontal UIStackView horzStackView.AddArrangedSubview(new UILabel(new CGRect(0, 0, 10, 10))); }
protected override void OnElementChanged(ElementChangedEventArgs <ExtendedDatePicker> e) { base.OnElementChanged(e); if (e.NewElement == null) { return; } if (Control == null) { var entry = new NoCaretField { BorderStyle = UITextBorderStyle.RoundedRect }; entry.EditingDidBegin += OnStarted; entry.EditingDidEnd += OnEnded; _picker = new UIDatePicker { Mode = UIDatePickerMode.Date, TimeZone = new NSTimeZone("UTC") }; _picker.ValueChanged += HandleValueChanged; var uiToolbar = new UIToolbar(new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, 44)) { BarStyle = UIBarStyle.Default, Translucent = true }; var clearButton = new UIBarButtonItem(UIBarButtonSystemItem.Trash, (o, a) => { //Clear the date. Element.SelectedDate = null; Element.UpdateDate(); SetText(false); entry.ResignFirstResponder(); }); clearButton.Title = "Clear"; var space = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace); var cancelButton = new UIBarButtonItem(UIBarButtonSystemItem.Cancel, (o, a) => { entry.ResignFirstResponder(); }); var doneButton = new UIBarButtonItem(UIBarButtonSystemItem.Done, (o, a) => { //Set the date. Element.SelectedDate = _picker.Date.ToDateTime(); Element.UpdateDate(); SetText(false); entry.ResignFirstResponder(); }); uiToolbar.SetItems(new[] { clearButton, space, cancelButton, doneButton }, false); entry.InputView = _picker; entry.InputAccessoryView = uiToolbar; entry.InputView.AutoresizingMask = UIViewAutoresizing.FlexibleHeight; entry.InputAccessoryView.AutoresizingMask = UIViewAutoresizing.FlexibleHeight; entry.InputAssistantItem.LeadingBarButtonGroups = null; entry.InputAssistantItem.TrailingBarButtonGroups = null; _defaultTextColor = entry.TextColor; _useLegacyColorManagement = e.NewElement.UseLegacyColorManagement <DatePicker>(); SetNativeControl(entry); } SetText(false); UpdateFont(); UpdateMaximumDate(); UpdateMinimumDate(); UpdateTextColor(); UpdateFlowDirection(); UpdatePlaceholder(); }