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; } }
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); } }
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; }