Xamarin.Forms,创建可点击的框架(背景)

时间:2017-04-19 04:38:34

标签: xamarin.forms frame

由于Button仅限于在Xamarin.Forms中使用其中的图片而且StackLayout不支持CornerRadius属性,因此我们决定使用Frame代替Tapped Mage::helper('catalog/image')->init($item->getProduct(), 'thumbnail'); 事件已实现,但问题是后台在点击时没有改变。 那么如何创建和设置可点击的背景到框架?

1 个答案:

答案 0 :(得分:0)

AFAIK你不能处理xamarin形式的视觉状态。但您可以执行类似下面的代码来使用自定义渲染器实现状态转换。

public class CustomFrameRenderer : Xamarin.Forms.Platform.Android.AppCompat.FrameRenderer
    {
        private Color backgroundColor;

        protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
        {
            base.OnElementChanged(e);
            backgroundColor = Element.BackgroundColor;
            Control.Touch += Control_Touch;
        }

        private void Control_Touch(object sender, TouchEventArgs e)
        {
            switch (e.Event.Action)
            {
                case MotionEventActions.Down:
                    Element.BackgroundColor = Color.Green;
                    break;
                case MotionEventActions.Up:
                    Element.BackgroundColor = backgroundColor;
                    break;
            }
        }
    }

注意:上面的代码会影响所有的帧,所以更好的子类并创建一个新的框架,以避免整个应用程序中的背景颜色转换。