由于Button仅限于在Xamarin.Forms中使用其中的图片而且StackLayout
不支持CornerRadius
属性,因此我们决定使用Frame
代替Tapped
Mage::helper('catalog/image')->init($item->getProduct(), 'thumbnail');
事件已实现,但问题是后台在点击时没有改变。
那么如何创建和设置可点击的背景到框架?
答案 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;
}
}
}
注意:上面的代码会影响所有的帧,所以更好的子类并创建一个新的框架,以避免整个应用程序中的背景颜色转换。