public Issue2333() { var timePicker = new TimePicker(); var timePickerBtn = new Button { Text = "Click me to call .Focus on TimePicker" }; timePickerBtn.Clicked += (sender, args) => { timePicker.Focus(); }; var timePickerBtn2 = new Button { Text = "Click me to call .Unfocus on TimePicker" }; timePickerBtn2.Clicked += (sender, args) => { timePicker.Unfocus(); }; Content = new StackLayout { Children = { timePickerBtn, timePickerBtn2, timePicker, } }; }
// Handle datepicker event, set the scheduled date void Add_Schedule(object sender, System.EventArgs e) { Selected_Schedule_Button_Id = sender.GetHashCode(); DatePicker datePicker = scheduleDatePicker; if (Selected_Schedule_Button_Id == sender.GetHashCode()) { IsEnabled = true; datePicker.Focus(); datePicker.Unfocused += (s, date_select_event) => { TimePicker timePicker = scheduleTimePicker; IsEnabled = true; timePicker.Focus(); timePicker.Unfocused += (time_select_sender, time_select_event) => { if (Selected_Schedule_Button_Id == ((Button)sender).GetHashCode()) { ((Button)sender).Text = "Scheduled for: " + datePicker.Date.ToString("dd/MM/yyyy") + " " + timePicker.Time.ToString(); //Console.WriteLine(sender.GetHashCode()); MessagingCenter.Send(this, "ScheduledDateTime" + ((Button)sender).CommandParameter.ToString(), DateTime.Parse(datePicker.Date.ToString("dd/MM/yyyy") + " " + timePicker.Time.ToString())); } }; }; } }
public TimeCell() { this.Tapped += (s, e) => { TimePicker.Focus(); }; InitializeComponent(); BindingContext = this; }
private void LabelTapped(View obj) { Device.BeginInvokeOnMainThread(() => { switch (Device.RuntimePlatform) { case Device.Android: case Device.iOS: _picker.Focus(); break; default: _pickerLabel.IsVisible = false; _picker.IsVisible = true; _picker.Focus(); break; } _picker.PropertyChanged -= SelectedTime; _picker.PropertyChanged += SelectedTime; }); }
private void TapGestureRecognizer_Tapped(object sender, EventArgs e) { if (IsEnabled == false) { return; } if (_timePicker.IsFocused) { _timePicker.Unfocus(); } _timePicker.Focus(); }
protected override void Init() { Title = "Issue 10909"; var layout = new StackLayout(); var instructions = new Label { Padding = 12, Text = "If pressing the buttons opens the popup of both DatePicker and TimePicker, the test has passed.", BackgroundColor = Color.Black, TextColor = Color.White }; var datePickerFocusButton = new Button { Text = "Set focus on DatePicker" }; var datepicker = new DatePicker(); var timePickerFocusButton = new Button { Text = "Set focus on TimePicker" }; var timePicker = new TimePicker(); layout.Children.Add(instructions); layout.Children.Add(datePickerFocusButton); layout.Children.Add(datepicker); layout.Children.Add(timePickerFocusButton); layout.Children.Add(timePicker); Content = layout; datePickerFocusButton.Clicked += (sender, args) => { datepicker.Focus(); }; timePickerFocusButton.Clicked += (sender, args) => { timePicker.Focus(); }; }
protected override void Init() { var timePicker = new TimePicker { AutomationId = TimePicker }; var timePickerFocusButton = new Button { Text = "Click to focus TimePicker", Command = new Command(() => timePicker.Focus()) }; Content = new StackLayout { Children = { timePicker, timePickerFocusButton } }; }
/* Focus time picker */ private void TimeDate_Clicked(object sender, EventArgs e) { TimePicker.Focus(); }
private void Custom_Entry_Focused(object sender, FocusEventArgs e) { TimePicker.Focus(); }
protected override void Init() { var stackLayout = new StackLayout { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }; // DatePicker var datePickerButton = new Button { Text = "Show DatePicker", AutomationId = DatePickerButton }; var datePicker = new DatePicker { IsVisible = false }; datePickerButton.Clicked += (s, a) => { Device.BeginInvokeOnMainThread(() => { if (datePicker.IsFocused) { datePicker.Unfocus(); } datePicker.Focus(); }); }; // TimePicker var timePickerButton = new Button { Text = "Show TimePicker", AutomationId = TimePickerButton }; var timePicker = new TimePicker { IsVisible = false }; timePickerButton.Clicked += (s, a) => { Device.BeginInvokeOnMainThread(() => { if (timePicker.IsFocused) { timePicker.Unfocus(); } timePicker.Focus(); }); }; // Picker var pickerButton = new Button { Text = "Show Picker", AutomationId = PickerButton }; var picker = new Picker { IsVisible = false, ItemsSource = _pickerValues }; pickerButton.Clicked += (s, a) => { Device.BeginInvokeOnMainThread(() => { if (picker.IsFocused) { picker.Unfocus(); } picker.Focus(); }); }; stackLayout.Children.Add(datePickerButton); stackLayout.Children.Add(datePicker); stackLayout.Children.Add(timePickerButton); stackLayout.Children.Add(timePicker); stackLayout.Children.Add(pickerButton); stackLayout.Children.Add(picker); Content = stackLayout; }
public Task <string> InputBox(INavigation navigation) { // wait in this proc, until user did his input var tcs = new TaskCompletionSource <string>(); var lblTitle = new Label { Text = "Beggining of day", HorizontalOptions = LayoutOptions.Center, FontAttributes = FontAttributes.Bold }; var lblMessage = new Label { Text = "Choose when to reset your daily calories." }; var txtInput = new TimePicker { Time = TimeSpan.FromHours(9), }; var btnOk = new Xamarin.Forms.Button { Text = "Ok", WidthRequest = 100, BackgroundColor = Color.FromRgb(0.8, 0.8, 0.8), }; btnOk.Clicked += async(s, e) => { // close page var result = txtInput.Time.ToString(); await navigation.PopModalAsync(); // pass result tcs.SetResult(result); }; //var btnCancel = new Button //{ // Text = "Cancel", // WidthRequest = 100, // BackgroundColor = Color.FromRgb(0.8, 0.8, 0.8) //}; //btnCancel.Clicked += async (s, e) => //{ // // close page // await navigation.PopModalAsync(); // // pass empty result // tcs.SetResult(null); //}; var slButtons = new StackLayout { Orientation = StackOrientation.Horizontal, Children = { btnOk }, //Children = { btnOk, btnCancel }, }; var layout = new StackLayout { Padding = new Thickness(0, 40, 0, 0), VerticalOptions = LayoutOptions.StartAndExpand, HorizontalOptions = LayoutOptions.CenterAndExpand, Orientation = StackOrientation.Vertical, Children = { lblTitle, lblMessage, txtInput, slButtons }, }; // create and show page var page = new ContentPage(); page.Content = layout; navigation.PushModalAsync(page); // open keyboard txtInput.Focus(); // code is waiting her, until result is passed with tcs.SetResult() in btn-Clicked // then proc returns the result return(tcs.Task); }
private void T2_Tapped(object sender, EventArgs e) { expTimePicker = new ColorTimePicker(); expTimePicker.Focus(); }
void CreateUI() { stack = new StackLayout { Orientation = StackOrientation.Vertical, WidthRequest = App.ScreenSize.Width, HeightRequest = App.ScreenSize.Height - 48, VerticalOptions = LayoutOptions.StartAndExpand }; innerStack = new StackLayout { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Start, Orientation = StackOrientation.Horizontal, MinimumWidthRequest = App.ScreenSize.Width, WidthRequest = App.ScreenSize.Width, HeightRequest = App.ScreenSize.Height - 48, }; var topbar = new TopBar(true, "", this, 1, "back_arrow", "", innerStack, true).CreateTopBar(); stack.HeightRequest = App.ScreenSize.Height - topbar.HeightRequest; var titleBar = new Label { WidthRequest = App.ScreenSize.Width, HeightRequest = 48, HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center, BackgroundColor = FormsConstants.AppyLightBlue, TextColor = Color.White, Text = Langs.Const_Button_Add_Odometer_Reading }; var height = App.ScreenSize.Height - (48 * 2); var grid = new Grid { WidthRequest = App.ScreenSize.Width * .9, RowDefinitions = new RowDefinitionCollection { new RowDefinition { Height = height * .4 }, new RowDefinition { Height = 1 }, new RowDefinition { Height = GridLength.Star }, } }; var addGrid = new Grid { WidthRequest = App.ScreenSize.Width * .8, HeightRequest = 48, BackgroundColor = FormsConstants.AppyDarkBlue, ColumnDefinitions = new ColumnDefinitionCollection { new ColumnDefinition { Width = (App.ScreenSize.Width * .8) * .4 }, new ColumnDefinition { Width = 1 }, new ColumnDefinition { Width = GridLength.Star } } }; var enterOdo = UniversalEntry.GeneralEntryCell("", App.ScreenSize.Width * .8, Keyboard.Numeric, "XXXXX", ReturnKeyTypes.Done); enterOdo.SetBinding(Entry.TextProperty, new Binding("Reading")); addGrid.Children.Add(new Label { VerticalTextAlignment = TextAlignment.Center, FontSize = 16, TextColor = Color.White, FontFamily = Helper.RegFont, Text = Langs.Const_Label_Odometer }, 0, 0); addGrid.Children.Add(new BoxView { WidthRequest = 1, HeightRequest = 40, VerticalOptions = LayoutOptions.Center, BackgroundColor = Color.White }, 1, 0); addGrid.Children.Add(enterOdo, 2, 0); odoListView = new ListView { SeparatorVisibility = SeparatorVisibility.None, ItemsSource = ViewModel.Readings, ItemTemplate = new DataTemplate(typeof(OdoViewCell)), HasUnevenRows = true }; var datePicker = new DatePicker(); datePicker.SetBinding(DatePicker.DateProperty, new Binding("DateAdded")); datePicker.SetBinding(DatePicker.IsVisibleProperty, new Binding("ShowDate")); datePicker.DateSelected += (s, e) => { ViewModel.DateAdded = e.NewDate; }; var timePicker = new TimePicker(); timePicker.SetBinding(TimePicker.TimeProperty, new Binding("TimeAdded")); timePicker.SetBinding(TimePicker.IsVisibleProperty, new Binding("ShowTime")); var btnDate = new Button { WidthRequest = (App.ScreenSize.Width * .8) * .5, BackgroundColor = FormsConstants.AppyDarkShade, BorderRadius = 6, Text = Langs.Const_Label_Date, TextColor = Color.White }; btnDate.Clicked += delegate { datePicker.Focus(); }; var btnTime = new Button { WidthRequest = (App.ScreenSize.Width * .8) * .5, BackgroundColor = FormsConstants.AppyDarkShade, BorderRadius = 6, Text = Langs.Const_Button_Set_Time, TextColor = Color.White }; btnTime.Clicked += delegate { timePicker.Focus(); }; var btnConfirm = new Button { WidthRequest = App.ScreenSize.Width * .8, BorderRadius = 8, TextColor = Color.White, Text = Langs.Const_Button_Add_Odometer_Reading }; btnConfirm.Clicked += delegate { ViewModel.BtnAddOdometer.Execute(null); }; grid.Children.Add( new StackLayout { VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center, Padding = new Thickness(0, 8), Children = { addGrid, new StackLayout { Orientation = StackOrientation.Horizontal, Children = { btnDate, btnTime } }, btnConfirm } }, 0, 0); grid.Children.Add(new BoxView { HeightRequest = 1, WidthRequest = App.ScreenSize.Width, BackgroundColor = Color.White }, 0, 1); grid.Children.Add(odoListView, 0, 2); stack.Children.Add(grid); stack.Children.Add(odoListView); innerStack.Children.Add(stack); var masterStack = new StackLayout { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, Children = { new StackLayout { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Start, WidthRequest = App.ScreenSize.Width, Children = { topbar } }, new StackLayout { TranslationY = -6, Children = { titleBar } }, innerStack } }; Content = masterStack; }
public CreateEventPage() { NavigationPage.SetHasNavigationBar(this, false); masterLayout = new CustomLayout(); masterLayout.BackgroundColor = Color.FromRgb(244, 244, 244); deviceSpec = DependencyService.Get<IDeviceSpec>(); PurposeColorTitleBar mainTitleBar = new PurposeColorTitleBar(Color.FromRgb(8, 135, 224), "Purpose Color", Color.Black, "back", true); mainTitleBar.imageAreaTapGestureRecognizer.Tapped += imageAreaTapGestureRecognizer_Tapped; PurposeColorSubTitleBar subTitleBar = new PurposeColorSubTitleBar(Constants.SUB_TITLE_BG_COLOR, "Create Reminder", false, true); subTitleBar.BackButtonTapRecognizer.Tapped += BackButtonTapRecognizer_Tapped; CustomImageButton startDatePickerButton = new CustomImageButton(); CustomImageButton startTimePickerButton = new CustomImageButton(); CustomImageButton endDatePickerButton = new CustomImageButton(); CustomImageButton endTimePickerButton = new CustomImageButton(); CustomEntry title = new CustomEntry(); title.WidthRequest = deviceSpec.ScreenWidth * 90 / 100; title.Placeholder = " Title"; title.TextColor = Color.Black; title.BackgroundColor = Color.White; CustomEntry messege = new CustomEntry(); messege.WidthRequest = deviceSpec.ScreenWidth * 90 / 100; messege.Placeholder = " Description"; messege.TextColor = Color.Black; messege.BackgroundColor = Color.White; DatePicker startDatePicker = new DatePicker(); startDatePicker.WidthRequest = 0; startDatePicker.HeightRequest = 0; startDatePicker.IsVisible = false; startDatePicker.DateSelected += (object sender, DateChangedEventArgs e) => { startDatePickerButton.Text = startDatePicker.Date.ToString("dd/MM/yyyy"); }; DatePicker endDatePicker = new DatePicker(); endDatePicker.WidthRequest = 0; endDatePicker.HeightRequest = 0; endDatePicker.IsVisible = false; endDatePicker.DateSelected += (object sender, DateChangedEventArgs e) => { endDatePickerButton.Text = endDatePicker.Date.ToString("dd/MM/yyyy"); }; TimePicker startTimePicker = new TimePicker(); startTimePicker.WidthRequest = 0; startTimePicker.HeightRequest = 0; startTimePicker.IsVisible = false; startTimePicker.PropertyChanged += (object sender, System.ComponentModel.PropertyChangedEventArgs e) => { try { if ("Time" == e.PropertyName) { // string tie = startTimePicker.Time.ToString("hh:mm tt"); string amPM = (startTimePicker.Time.Hours > 12) ? "PM" : "AM"; startTimePickerButton.Text = startTimePicker.Time.ToString(); //startTimePicker.Time.Hours.ToString () + " : " + startTimePicker.Time.Minutes.ToString() + " " + amPM; } } catch (Exception ex) { var test = ex.Message; } }; TimePicker endTimePicker = new TimePicker(); endTimePicker.WidthRequest = 0; endTimePicker.HeightRequest = 0; endTimePicker.IsVisible = false; endTimePicker.PropertyChanged += (object sender, System.ComponentModel.PropertyChangedEventArgs e) => { try { if ("Time" == e.PropertyName) { string amPM = (endTimePicker.Time.Hours > 12) ? "PM" : "AM"; endTimePickerButton.Text = endTimePicker.Time.ToString();// endTimePicker.Time.Hours.ToString () + " : " + endTimePicker.Time.Minutes.ToString() + " " + amPM; } } catch (Exception ex) { var test = ex.Message; } }; //startDatePickerButton = new CustomImageButton(); startDatePickerButton.ImageName = Device.OnPlatform("select_box_whitebg.png", "select_box_whitebg.png", "//Assets//select_box_whitebg.png"); startDatePickerButton.Text = "Start Date"; startDatePickerButton.FontSize = 17; startDatePickerButton.FontFamily = Constants.HELVERTICA_NEUE_LT_STD; startDatePickerButton.TextOrientation = interfaces.TextOrientation.Left; startDatePickerButton.TextColor = Color.Gray; startDatePickerButton.WidthRequest = deviceSpec.ScreenWidth * 40 / 100; startDatePickerButton.Clicked += (object sender, EventArgs e) => { try { startDatePicker.Date = DateTime.Now.AddDays(1); startDatePicker.Focus(); } catch (Exception ex) { var test = ex.Message; } }; // startTimePickerButton = new CustomImageButton(); startTimePickerButton.ImageName = Device.OnPlatform("select_box_whitebg.png", "select_box_whitebg.png", "//Assets//select_box_whitebg.png"); startTimePickerButton.Text = " Start Time"; startTimePickerButton.TextOrientation = TextOrientation.Middle; startTimePickerButton.FontSize = 17; startTimePickerButton.FontFamily = Constants.HELVERTICA_NEUE_LT_STD; startTimePickerButton.TextOrientation = interfaces.TextOrientation.Left; startTimePickerButton.TextColor = Color.Gray; startTimePickerButton.WidthRequest = deviceSpec.ScreenWidth * 40 / 100; startTimePickerButton.Clicked += (object sender, EventArgs e) => { try { startTimePicker.Time = new TimeSpan(12, 00, 00); startTimePicker.Focus(); } catch (Exception ex) { var test = ex.Message; } }; // endDatePickerButton = new CustomImageButton(); endDatePickerButton.ImageName = Device.OnPlatform("select_box_whitebg.png", "select_box_whitebg.png", "//Assets//select_box_whitebg.png"); endDatePickerButton.Text = "End Date"; endDatePickerButton.FontSize = 17; endDatePickerButton.FontFamily = Constants.HELVERTICA_NEUE_LT_STD; endDatePickerButton.TextOrientation = interfaces.TextOrientation.Left; endDatePickerButton.TextColor = Color.Gray; endDatePickerButton.WidthRequest = deviceSpec.ScreenWidth * 40 / 100; endDatePickerButton.Clicked += (object sender, EventArgs e) => { try { endDatePicker.Date = DateTime.Now.AddDays(1); endDatePicker.Focus(); } catch (Exception ex) { var test = ex.Message; } }; // endTimePickerButton = new CustomImageButton(); endTimePickerButton.ImageName = Device.OnPlatform("select_box_whitebg.png", "select_box_whitebg.png", "//Assets//select_box_whitebg.png"); endTimePickerButton.Text = " End Time"; endTimePickerButton.FontSize = 17; endTimePickerButton.FontFamily = Constants.HELVERTICA_NEUE_LT_STD; endTimePickerButton.TextOrientation = interfaces.TextOrientation.Left; endTimePickerButton.TextColor = Color.Gray; endTimePickerButton.WidthRequest = deviceSpec.ScreenWidth * 40 / 100; endTimePickerButton.Clicked += (object sender, EventArgs e) => { try { endTimePicker.Time = new TimeSpan(12, 00, 00); endTimePicker.Focus(); } catch (Exception ex) { var test = ex.Message; } }; CustomImageButton reminderPickerButton = new CustomImageButton (); Picker reminderPicker = new Picker (); reminderPicker.Items.Add ("15"); reminderPicker.Items.Add ("30"); reminderPicker.Items.Add ("45"); reminderPicker.Items.Add ("60"); reminderPicker.WidthRequest = 0; reminderPicker.HeightRequest = 0; reminderPicker.SelectedIndexChanged += (object sender, EventArgs e) => { reminderPickerButton.Text = reminderPicker.Items[reminderPicker.SelectedIndex]; }; reminderPickerButton.ImageName = Device.OnPlatform("select_box_whitebg.png", "select_box_whitebg.png", "//Assets//select_box_whitebg.png"); reminderPickerButton.Text = " Reminder"; reminderPickerButton.TextOrientation = TextOrientation.Middle; reminderPickerButton.FontSize = 17; reminderPickerButton.FontFamily = Constants.HELVERTICA_NEUE_LT_STD; reminderPickerButton.TextOrientation = interfaces.TextOrientation.Left; reminderPickerButton.TextColor = Color.Gray; reminderPickerButton.WidthRequest = deviceSpec.ScreenWidth * 90 / 100; reminderPickerButton.Clicked += (object sender, EventArgs e) => { reminderPicker.Focus(); }; Button createReminderButton = new Button (); createReminderButton.Text = "Create Reminder"; createReminderButton.TextColor = Color.White; createReminderButton.BackgroundColor = Color.FromRgb( 30, 126, 210 ); createReminderButton.WidthRequest = deviceSpec.ScreenWidth * 90 / 100; createReminderButton.Clicked += async (object sender, EventArgs e) => { try { App.CalPage = this; if (startDatePickerButton.Text == "Start Date" || endDatePickerButton.Text == "End Date") { await DisplayAlert(Constants.ALERT_TITLE, "Please select start date and end date to proceed", Constants.ALERT_OK); return; } IReminderService reminder = DependencyService.Get<IReminderService>(); if (Device.OS == TargetPlatform.iOS) { var access = await reminder.RequestAccessAsync(); if (!access) return; } int reminderValue = 0; if (reminderPickerButton.Text != null && reminderPickerButton.Text.Length > 0 && reminderPicker.SelectedIndex >= 0) { reminderValue = Convert.ToInt32(reminderPickerButton.Text); } DateTime startDateAndTime = new DateTime(startDatePicker.Date.Year, startDatePicker.Date.Month, startDatePicker.Date.Day, startTimePicker.Time.Hours, startTimePicker.Time.Minutes, 0); DateTime endDateAndTime = new DateTime(endDatePicker.Date.Year, endDatePicker.Date.Month, endDatePicker.Date.Day, endTimePicker.Time.Hours, endTimePicker.Time.Minutes, 0); // add this to app datetime fields to serve to api. App.SelectedActionStartDate = startDateAndTime.ToString(); //to be converted into UTC App.SelectedActionEndDate = endDateAndTime.ToString(); //to be converted into UTC App.SelectedActionReminderValue = reminderValue; if (!reminder.Remind(startDateAndTime, endDateAndTime, title.Text, messege.Text, reminderValue)) { await DisplayAlert("Purpose Color", "Error in creating calendar event", Constants.ALERT_OK); } else { IProgressBar progress = DependencyService.Get<IProgressBar>(); progress.ShowToast("Calander event created"); if (Device.OS != TargetPlatform.iOS) { //Navigation.PopAsync(); await Navigation.PopModalAsync(); } } } catch (Exception ex) { var test = ex.Message; } }; masterLayout.AddChildToLayout(mainTitleBar, 0, 0); masterLayout.AddChildToLayout(subTitleBar, 0, Device.OnPlatform(9, 10, 10)); masterLayout.AddChildToLayout(startDatePicker, 0, 0); masterLayout.AddChildToLayout(startTimePicker, 0, 0); masterLayout.AddChildToLayout(endDatePicker, 0, 0); masterLayout.AddChildToLayout(endTimePicker, 0, 0); masterLayout.AddChildToLayout(reminderPicker, 0, 0); masterLayout.AddChildToLayout (title, 5, 20); masterLayout.AddChildToLayout(messege, 5, 30); masterLayout.AddChildToLayout(startDatePickerButton, 5, 40); masterLayout.AddChildToLayout(startTimePickerButton, 55, 40); masterLayout.AddChildToLayout(endDatePickerButton, 5, 50); masterLayout.AddChildToLayout(endTimePickerButton, 55, 50); masterLayout.AddChildToLayout(reminderPickerButton, 5, 70); masterLayout.AddChildToLayout(createReminderButton, 5, 80); Content = masterLayout; }
public RecordPage() { this.SetBinding(ContentPage.TitleProperty, "Name"); NavigationPage.SetHasNavigationBar(this, true); var nameLabel = new Label(); // no Text! localized later nameLabel.VerticalOptions = LayoutOptions.End; var nameEntry = new Entry(); nameEntry.Margin = 0; nameEntry.FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Entry)); nameEntry.SetBinding(Entry.TextProperty, "Name"); var decriptionLabel = new Label(); // no Text! localized later decriptionLabel.VerticalOptions = LayoutOptions.End; var descriptionEntry = new Editor(); descriptionEntry.SetBinding(Editor.TextProperty, new Binding("Description", BindingMode.TwoWay)); descriptionEntry.FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Entry)); //descriptionEntry.SetBinding(Entry.TextProperty, "Description"); var startDateLabel = new Label(); // no Text! localized later startDateLabel.VerticalOptions = LayoutOptions.End; var startDatePicker = new DatePicker(); startDatePicker.SetBinding(DatePicker.DateProperty, "StartDate"); var dueToDateLabel = new Label(); // no Text! localized later dueToDateLabel.VerticalOptions = LayoutOptions.End; var dueToDatePicker = new DatePicker(); dueToDatePicker.HeightRequest = Device.GetNamedSize(NamedSize.Small, typeof(Entry)); dueToDatePicker.SetBinding(DatePicker.DateProperty, "StartDate"); var estimationLabel = new Label(); // no Text! localized later estimationLabel.VerticalOptions = LayoutOptions.End; var estimationEntry = new Entry(); estimationEntry.FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Entry)); estimationEntry.SetBinding(Switch.IsToggledProperty, "EstimationTime"); var doneLabel = new Label(); // no Text! localized later doneLabel.VerticalOptions = LayoutOptions.End; var doneSwitch = new Switch(); doneSwitch.SetBinding(Switch.IsToggledProperty, "IsFinished"); var saveButton = new Button(); // no Text! localized later saveButton.Clicked += (sender, e) => { var todoItem = (Record)BindingContext; //App.Database.SaveItem(todoItem); this.Navigation.PopAsync(); }; var tp = new TimePicker(); var deleteButton = new Button(); // no Text! localized later deleteButton.Clicked += (sender, e) => { dueToDatePicker.Focus(); tp.Focus(); //var todoItem = (Record)BindingContext; //App.Database.DeleteItem(todoItem.ID); //this.Navigation.PopAsync(); }; var cancelButton = new Button(); // no Text! localized later cancelButton.Clicked += (sender, e) => { this.Navigation.PopAsync(); }; //var speakButton = new Button(); // no Text! localized later //speakButton.Clicked += (sender, e) => { // var todoItem = (Record)BindingContext; // //DependencyService.Get<ITextToSpeech>().Speak(todoItem.Name + " " + todoItem.Notes); //}; // TODO: Forms Localized text using two different methods: // refer to the codebehind for AppResources.resx.designer nameLabel.Text = "Name"; // AppResources.NameLabel; decriptionLabel.Text = "Description"; // AppResources.NotesLabel; startDateLabel.Text = "Start date"; dueToDateLabel.Text = "Due to"; estimationLabel.Text = "Estimation (minutes)"; doneLabel.Text = "Done"; // AppResources.DoneLabel; // using ResourceManager saveButton.Text = "Save"; // AppResources.SaveButton; deleteButton.Text = "Delete"; // L10n.Localize("DeleteButton", "Delete"); cancelButton.Text = "Cancel"; // L10n.Localize("CancelButton", "Cancel"); //speakButton.Text = "Speak";// L10n.Localize("SpeakButton", "Speak"); //var stack = new StackLayout //{ // VerticalOptions = LayoutOptions.StartAndExpand, // Padding = new Thickness(5), // Spacing = 0, // Children = { // nameLabel, nameEntry, // decriptionLabel, descriptionEntry, // startDateLabel, startDatePicker, // dueToDateLabel, dueToDatePicker, // estimationLabel, estimationEntry, // doneLabel, doneSwitch, // saveButton, deleteButton, cancelButton, speakButton // } //}; //Content = new ScrollView { Content = stack }; var grid = new Grid(); grid.ColumnSpacing = 0; grid.RowSpacing = 0; grid.Padding = new Thickness(5, 0); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); grid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(20, GridUnitType.Absolute) }); //0 grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }); //1 grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(20, GridUnitType.Absolute) }); //2 grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(100, GridUnitType.Absolute) }); //3 grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }); //4 grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }); //5 grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(40, GridUnitType.Absolute) }); //6 grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(25, GridUnitType.Absolute) }); //7 grid.RowDefinitions.Add(new RowDefinition { Height = new GridLength(50, GridUnitType.Absolute) }); //8 nameEntry.BackgroundColor = Color.LightCoral; descriptionEntry.BackgroundColor = Color.LightCoral; grid.Children.Add(nameLabel, 0, 0); grid.Children.Add(nameEntry, 0, 1); grid.Children.Add(decriptionLabel, 0, 2); grid.Children.Add(descriptionEntry, 0, 3); Grid.SetColumnSpan(nameLabel, 3); Grid.SetColumnSpan(nameEntry, 3); Grid.SetColumnSpan(decriptionLabel, 3); Grid.SetColumnSpan(descriptionEntry, 3); grid.Children.Add(startDateLabel, 0, 4); grid.Children.Add(startDatePicker, 2, 4); grid.Children.Add(dueToDateLabel, 0, 5); grid.Children.Add(dueToDatePicker, 2, 5); grid.Children.Add(estimationLabel, 0, 6); grid.Children.Add(estimationEntry, 2, 6); grid.Children.Add(doneLabel, 0, 7); grid.Children.Add(doneSwitch, 2, 7); Grid.SetColumnSpan(startDateLabel, 2); Grid.SetColumnSpan(dueToDateLabel, 2); Grid.SetColumnSpan(estimationLabel, 2); Grid.SetColumnSpan(doneLabel, 2); grid.Children.Add(saveButton, 0, 8); grid.Children.Add(deleteButton, 1, 8); grid.Children.Add(cancelButton, 2, 8); grid.Children.Add(tp, 2, 9); Content = new ScrollView { Content = grid }; }