Ejemplo n.º 1
0
        protected override void OnPropertyChanged(string propertyName = null)
        {
            base.OnPropertyChanged(propertyName);

            if (propertyName == IconProperty.PropertyName)
            {
                if (Icon != null && Icon.EndsWith(".svg", StringComparison.OrdinalIgnoreCase))
                {
                    _image.Source = SvgImageSource.FromFile(Icon);
                }
                else
                {
                    _image.Source = Icon;
                }
            }

            if (propertyName == IconWidthProperty.PropertyName ||
                propertyName == IconHeightProperty.PropertyName)
            {
                _image.WidthRequest  = IconWidth;
                _image.HeightRequest = IconHeight;
                WidthRequest         = Math.Max(IconWidth, 36d);
                HeightRequest        = Math.Max(IconHeight, 36d);
            }

            if (propertyName == IconSizeProperty.PropertyName)
            {
                if ((object)IconWidth != IconWidthProperty.DefaultValue)
                {
                    _image.WidthRequest = IconSize;
                    WidthRequest        = Math.Max(IconSize, 36d);
                }

                if ((object)IconHeight != IconHeightProperty.DefaultValue)
                {
                    _image.HeightRequest = IconSize;
                    HeightRequest        = Math.Max(IconSize, 36d);
                }
            }

            if (propertyName == CommandProperty.PropertyName)
            {
                (GestureRecognizers.First() as TapGestureRecognizer).Command = Command;
            }

            if (propertyName == CommandParameterProperty.PropertyName)
            {
                (GestureRecognizers.First() as TapGestureRecognizer).CommandParameter = CommandParameter;
            }
        }
Ejemplo n.º 2
0
        protected override void OnPropertyChanged(string propertyName = null)
        {
            base.OnPropertyChanged(propertyName);

            if (propertyName == StateProperty.PropertyName)
            {
                if (State)
                {
                    Image.Source = !string.IsNullOrEmpty(IconOn) ? SvgImageSource.FromFile(IconOn) : SvgImageSource.FromFile("more.svg");
                }
                else
                {
                    Image.Source = !string.IsNullOrEmpty(IconOff) ? SvgImageSource.FromFile(IconOff) : SvgImageSource.FromFile("more.svg");
                }
            }

            if (propertyName == IconOnProperty.PropertyName)
            {
                if (State)
                {
                    Image.Source = !string.IsNullOrEmpty(IconOn) ? SvgImageSource.FromFile(IconOn) : SvgImageSource.FromFile("more.svg");
                }
            }

            if (propertyName == IconOffProperty.PropertyName)
            {
                if (!State)
                {
                    Image.Source = !string.IsNullOrEmpty(IconOff) ? SvgImageSource.FromFile(IconOff) : SvgImageSource.FromFile("more.svg");
                }
            }

            if (propertyName == CommandProperty.PropertyName)
            {
                (GestureRecognizers.First() as TapGestureRecognizer).Command = Command;
            }

            if (propertyName == IconSizeProperty.PropertyName)
            {
                Image.WidthRequest = IconSize;
                WidthRequest       = Math.Max(IconSize, 36d);

                Image.HeightRequest = IconSize;
                HeightRequest       = Math.Max(IconSize, 36d);
            }
        }
Ejemplo n.º 3
0
        public ToggleButton()
        {
            Image = new CachedImage()
            {
                HorizontalOptions    = LayoutOptions.Center,
                VerticalOptions      = LayoutOptions.Center,
                FadeAnimationEnabled = false,
            };

            State = false;

            Padding = 0;
            GestureRecognizers.Clear();
            GestureRecognizers.Add(new TapGestureRecognizer());
            (GestureRecognizers.First() as TapGestureRecognizer).Tapped += tap;

            HeightRequest = 36d;
            WidthRequest  = 36d;
            IconSize      = 25d;

            Content = Image;
        }