Пример #1
0
        public void Slider_ValueChanged(object sender, ValueChangedEventArgs e)
        {
            Slider ctrl = (Slider)sender;

            ComosWebSDK.UI.UIEdit b = (ComosWebSDK.UI.UIEdit)ctrl.BindingContext;

            var step = Math.Round(e.NewValue / 20);

            ctrl.Value = step * 20;

            CheckValue(b.NestedName, ((int)e.NewValue).ToString(), b.Value, b.Text);
        }
Пример #2
0
        public void Txt_TextChanged(object sender, TextChangedEventArgs e)
        {
            CustomEntry ctrl        = (CustomEntry)sender;
            string      nestedname  = "";
            string      oldvalue    = "";
            string      description = "";

            ComosWebSDK.UI.UIEdit b = (ComosWebSDK.UI.UIEdit)ctrl.BindingContext;
            nestedname  = b.NestedName;
            oldvalue    = b.Value;
            description = b.Text;

            CheckValue(nestedname, e.NewTextValue, oldvalue, description);
        }
Пример #3
0
        public View UpdateAttributesUI(ComosWebSDK.UI.UIEdit ui)
        {
            if (!ui.ReadOnly)
            {
                editablevalues.Add(ui);
            }

            StackLayout layout = new StackLayout()
            {
                Orientation       = StackOrientation.Horizontal,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                //VerticalOptions = LayoutOptions.FillAndExpand,
            };

            var lbl = new Label()
            {
                Text                    = ui.Text,
                WidthRequest            = App.WidthPixels / 3,
                VerticalTextAlignment   = TextAlignment.Center,
                HorizontalTextAlignment = TextAlignment.Start,
            };

            layout.Children.Add(lbl);

            if (ui.HasUnit && ui.Unit == "%")
            {
                if (ui.Value == "")
                {
                    ui.Value = "0";
                }

                // Use a slider bar.
                Slider slider = new Slider
                {
                    Minimum = 0,

                    Maximum           = 100,
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    BindingContext    = ui,
                    // work around xamarin slider bug https://bugzilla.xamarin.com/show_bug.cgi?id=54887
                    Value     = double.Parse(ui.Value),
                    IsEnabled = !ui.ReadOnly,
                };
                slider.ValueChanged += Slider_ValueChanged;
                var lblpercent = new Label()
                {
                    Text = ui.Value,
                    VerticalTextAlignment = TextAlignment.Center,
                    BindingContext        = slider,
                };
                lblpercent.SetBinding(
                    Label.TextProperty,
                    new Binding("Value", BindingMode.OneWay,
                                null, null, "{0}"));
                // Try out work around xamarin slider bug
                // https://bugzilla.xamarin.com/show_bug.cgi?id=54887
                // Does not work
                //   slider.Value = slider.Value + 0.1;

                if (ui.CachedValue != "" && ui.CachedValue != ui.Value)
                {
                    slider.Value = int.Parse(ui.CachedValue);
                }

                layout.Children.Add(slider);
                layout.Children.Add(lblpercent);
            }
            else
            {
                if (ui.ReadOnly)
                {
                    var txt = new Label()
                    {
                        Text = ui.Value,
                    };
                    layout.Children.Add(txt);
                }
                else
                {
                    var txt = new CustomEntry()
                    {
                        Text              = ui.Value,
                        WidthRequest      = App.WidthPixels * (2 / 3),
                        HorizontalOptions = LayoutOptions.FillAndExpand,
                        BindingContext    = ui,
                    };

                    if (ui.CachedValue != "" && ui.CachedValue != ui.Value)
                    {
                        txt.Text      = ui.CachedValue;
                        txt.TextColor = (Color)App.Current.Resources["spec-only-cache"];
                        CheckValue(ui.NestedName, ui.CachedValue, ui.Value, ui.Text);
                    }
                    else
                    {
                        txt.Text = ui.Value;
                    }

                    txt.TextChanged += Txt_TextChanged;
                    layout.Children.Add(txt);
                }

                if (ui.HasUnit)
                {
                    layout.Children.Add(new Label()
                    {
                        Text = ui.Unit,
                    });
                }
            }


            AbsoluteLayout.SetLayoutBounds(layout, new Rectangle(
                                               ui.x, ui.y, ui.width, ui.height));
            return(layout);
        }