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;
}
}
}
注:上記のコードはすべてのフレームに影響し、サブクラス化して新しいフレームを作成し、アプリ全体で背景の色が変わらないようにします。