/// <summary> /// Initialize an image button layout /// Add LongTapGesture recognizer for displaying pressed color and invoke click event. /// </summary> public ImageButton() : base() { var image = new Image() { Source = Source, }; image.BindingContext = this; image.SetBinding(Image.SourceProperty, new Binding("Source")); image.SetBinding(Image.MinimumWidthRequestProperty, new Binding("MinWidth")); image.SetBinding(Image.MinimumHeightRequestProperty, new Binding("MinHeight")); var gestureRecognizer = new LongTapGestureRecognizer(); //When tap event is invoked. add pressed color to image. gestureRecognizer.TapStarted += (s, e) => { //change forground blend color of image ImageAttributes.SetBlendColor(image, Color.FromRgb(213, 228, 240)); }; //If tap is released. set default color to image. gestureRecognizer.TapCanceled += (s, e) => { //revert forground blend color of image ImageAttributes.SetBlendColor(image, Color.Default); SendClicked(); }; //If tap is completed. set default color to image. gestureRecognizer.TapCompleted += (s, e) => { //revert forground blend color of image ImageAttributes.SetBlendColor(image, Color.Default); SendClicked(); }; GestureRecognizers.Add(gestureRecognizer); Children.Add( image, Constraint.RelativeToParent((parent) => { return(0); }), Constraint.RelativeToParent((parent) => { return(0); }), Constraint.RelativeToParent((parent) => { return(parent.Width); }), Constraint.RelativeToParent((parent) => { return(parent.Height); })); }
/// <summary> /// To initialize components of the operation item /// </summary> void InitializeComponent() { _bgButton = new Image { Source = "apps_list_item_bg.png", }; var gestureRecognizer = new LongTapGestureRecognizer(); //When tap event is invoked. add pressed color to square image. gestureRecognizer.TapStarted += (s, e) => { //change forground blend color of image ImageAttributes.SetBlendColor(_bgButton, Color.FromRgb(213, 228, 240)); }; //If tap is released. set default color to square image. gestureRecognizer.TapCanceled += (s, e) => { //revert forground blend color of image ImageAttributes.SetBlendColor(_bgButton, Color.Default); //Invoke selected event to consumer. SendSelected(); }; //Set default color to square image. gestureRecognizer.TapCompleted += (s, e) => { //revert forground blend color of image ImageAttributes.SetBlendColor(_bgButton, Color.Default); //Invoke selected event to consumer. SendSelected(); }; GestureRecognizers.Add(gestureRecognizer); Children.Add( _bgButton, Constraint.RelativeToParent((parent) => { return(0); }), Constraint.RelativeToParent((parent) => { return(0); }), Constraint.RelativeToParent((parent) => { return(parent.Width); }), Constraint.RelativeToParent((parent) => { return(parent.Height); })); _icon = new Image() { }; _icon.Source = ImageSource.FromFile(_data.IconPath); ImageAttributes.SetBlendColor(_bgButton, Color.FromRgb(213, 228, 240)); Children.Add( _icon, Constraint.RelativeToParent((parent) => { return(parent.Width * 0.0778); }), Constraint.RelativeToParent((parent) => { return(parent.Height * 0.2740); }), Constraint.RelativeToParent((parent) => { return(parent.Width * 0.2772); }), Constraint.RelativeToParent((parent) => { return(parent.Height * 0.4475); })); _caption = new Label { VerticalOptions = LayoutOptions.CenterAndExpand, FontSize = 18, LineBreakMode = LineBreakMode.CharacterWrap, }; _caption.Text = _data.Id; Children.Add( _caption, Constraint.RelativeToParent((parent) => { return(parent.Width * 0.425); }), Constraint.RelativeToParent((parent) => { return(0); }), Constraint.RelativeToParent((parent) => { return(parent.Width * 0.5); }), Constraint.RelativeToParent((parent) => { return(parent.Height); })); }
View CreateView() { var layout = new RelativeLayout { }; var backgroundImage = new Image { Source = new FileImageSource { File = "list_item_bg.png" }, Aspect = Aspect.Fill, }; layout.Children.Add( backgroundImage, Constraint.RelativeToParent((parent) => { return(0); }), Constraint.RelativeToParent((parent) => { return(0); }), Constraint.RelativeToParent((parent) => { return(parent.Width); }), Constraint.RelativeToParent((parent) => { return(parent.Height); })); var descriptionLabel = new Label { Text = "Description", HorizontalOptions = LayoutOptions.StartAndExpand, VerticalOptions = LayoutOptions.EndAndExpand, FontSize = 30, FontAttributes = FontAttributes.Bold, }; descriptionLabel.SetBinding(Label.TextProperty, "Title"); var pathLabel = new Label { Text = "Path", HorizontalOptions = LayoutOptions.StartAndExpand, VerticalOptions = LayoutOptions.StartAndExpand, FontSize = 25, TextColor = Color.FromRgb(146, 146, 146), LineBreakMode = LineBreakMode.CharacterWrap }; pathLabel.SetBinding(Label.TextProperty, "Path"); layout.Children.Add(descriptionLabel, Constraint.RelativeToParent((parent) => { return(parent.Width * 0.0431); }), Constraint.RelativeToParent((parent) => { return(parent.Height * 0.3084); })); layout.Children.Add(pathLabel, Constraint.RelativeToParent((parent) => { return(parent.Width * 0.0431); }), Constraint.RelativeToParent((parent) => { return(parent.Height * 0.5198); }), Constraint.RelativeToParent((parent) => { return(parent.Width * (1 - 2 * 0.0431)); })); var gestureRecognizer = new LongTapGestureRecognizer(); gestureRecognizer.TapStarted += (s, e) => { //change foreground blend color of image ImageAttributes.SetBlendColor(backgroundImage, Color.FromRgb(213, 228, 240)); }; gestureRecognizer.TapCanceled += (s, e) => { //revert foreground blend color of image ImageAttributes.SetBlendColor(backgroundImage, Color.Default); }; gestureRecognizer.TapCompleted += (s, e) => { //revert foreground blend color of image ImageAttributes.SetBlendColor(backgroundImage, Color.Default); }; layout.GestureRecognizers.Add(gestureRecognizer); return(layout); }