Пример #1
0
        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);
        }
Пример #2
0
        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;
        }