示例#1
0
        /// <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);
            }));
        }
示例#3
0
        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);
        }