public MainPage() { var iOS = Device.RuntimePlatform == Device.iOS; var controlsColor = (Color)App.Current.Resources["controlsColor"]; BarBackgroundColor = iOS ? default : controlsColor; BarTextColor = iOS ? controlsColor : (Color)App.Current.Resources["greyColor"]; reelsLengthsViewModel = new ReelsLengthsViewModel(); reelLengthsPage = new ReelLengthsCalculationPage(reelsLengthsViewModel) { Title = "ДЛИНЫ" }; twistViewModel = new TwistViewModel(); twistPage = new TwistCalculationPage(twistViewModel) { Title = "СКРУТКА" }; windingViewModel = new WindingViewModel(); windingPage = new WindingCalculationPage(windingViewModel) { Title = "ОБМОТКА" }; braidingViewModel = new BraidingViewModel(); braidingPage = new BraidingCalculationPage(braidingViewModel) { Title = "ОПЛЁТКА" }; Children.Add(reelLengthsPage); Children.Add(twistPage); Children.Add(windingPage); Children.Add(braidingPage); }
public ReelLengthsCalculationPage(ReelsLengthsViewModel viewModel) { reelsLengthsViewModel = viewModel; var controlsGrid = new Grid { RowSpacing = 0, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Start, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(0, GridUnitType.Auto) } }, RowDefinitions = { new RowDefinition { Height = new GridLength(0, GridUnitType.Auto) }, new RowDefinition { Height = new GridLength(0, GridUnitType.Auto) } }, }; #region Entries var controlsColor = (Color)App.Current.Resources["controlsColor"]; //edgeClearanceNumEntry var edgeClearanceNumEntry = new NumEntryControllable { EntryTextColor = controlsColor, Caption = "ДО КРАЯ БАРАБАНА, ММ", OnlyIntegerNumbersInput = true, BindingContext = reelsLengthsViewModel }; edgeClearanceNumEntry.SetBinding(NumEntryControllable.ValueProperty, nameof(reelsLengthsViewModel.EdgeClearance), BindingMode.TwoWay); edgeClearanceNumEntry.SetBinding(NumEntryControllable.MaxValueProperty, nameof(reelsLengthsViewModel.EdgeClearanceMaxValue), BindingMode.OneWay); edgeClearanceNumEntry.SetBinding(NumEntryControllable.MinValueProperty, nameof(reelsLengthsViewModel.EdgeClearanceMinValue), BindingMode.OneWay); edgeClearanceNumEntry.SetBinding(NumEntryControllable.OffsetProperty, nameof(reelsLengthsViewModel.EdgeClearanceOffset), BindingMode.OneWay); controlsGrid.Children.Add(edgeClearanceNumEntry, 0, 0); //coreDiameterNumEntry var coreDiameterNumEntry = new NumEntryControllable { EntryTextColor = controlsColor, Caption = "Ø КАБЕЛЯ, ММ", BindingContext = reelsLengthsViewModel }; coreDiameterNumEntry.SetBinding(NumEntryControllable.ValueProperty, nameof(reelsLengthsViewModel.CoreDiameter), BindingMode.TwoWay); coreDiameterNumEntry.SetBinding(NumEntryControllable.MaxValueProperty, nameof(reelsLengthsViewModel.CoreDiameterMaxValue), BindingMode.OneWay); coreDiameterNumEntry.SetBinding(NumEntryControllable.MinValueProperty, nameof(reelsLengthsViewModel.CoreDiameterMinValue), BindingMode.OneWay); coreDiameterNumEntry.SetBinding(NumEntryControllable.OffsetProperty, nameof(reelsLengthsViewModel.CoreDiameterOffset), BindingMode.OneWay); controlsGrid.Children.Add(coreDiameterNumEntry, 0, 1); #endregion var thickness = new Thickness(0); var reelsListView = new ListView { Margin = thickness, HasUnevenRows = true, ItemsSource = reelsLengthsViewModel.ReelViewModelsList, ItemTemplate = new DataTemplate(GetTemplate), Header = GetHeaderRow(), SelectionMode = ListViewSelectionMode.None }; var reelsListScrollView = new ScrollView { Margin = thickness, Padding = thickness, Content = reelsListView, VerticalScrollBarVisibility = ScrollBarVisibility.Always }; var frame = new Frame { Margin = thickness, Padding = thickness, HasShadow = true, Content = reelsListScrollView }; var absoluteLayout = new AbsoluteLayout(); if (Device.RuntimePlatform == Device.iOS) { absoluteLayout.Padding = new Thickness(0, 30, 0, 0); } absoluteLayout.Children.Add(frame); AbsoluteLayout.SetLayoutBounds(frame, new Rectangle(0.5, 0, 1, 0.6)); AbsoluteLayout.SetLayoutFlags(frame, AbsoluteLayoutFlags.All); absoluteLayout.Children.Add(controlsGrid); AbsoluteLayout.SetLayoutBounds(controlsGrid, new Rectangle(0.5, 1, controlsGrid.Width, controlsGrid.Height)); AbsoluteLayout.SetLayoutFlags(controlsGrid, AbsoluteLayoutFlags.PositionProportional); Content = absoluteLayout; }