0
为按钮仅限于使用其内部图像Xamarin.Forms而StackLayout
不支持CornerRadius
财产,我们决定使用Frame
,而不是他们的Tapped
事件被执行,但问题是背景不会在点击时改变。 那么如何创建并设置一个可点击的背景到框架?Xamarin.Forms,创建可点击帧(背景)
为按钮仅限于使用其内部图像Xamarin.Forms而StackLayout
不支持CornerRadius
财产,我们决定使用Frame
,而不是他们的Tapped
事件被执行,但问题是背景不会在点击时改变。 那么如何创建并设置一个可点击的背景到框架?Xamarin.Forms,创建可点击帧(背景)
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;
}
}
}
注:以上代码会影响所有的帧,从而更好的子类,并创建一个新的框架,以避免整个应用程序的背景颜色过渡。