2017-04-19 5 views
0

はXamarin.Formsでそれ内の画像を使用し、StackLayoutCornerRadiusプロパティをサポートしていません限られている、私たちは、代わりにそれらのFrameを使用することにしましたTappedイベントが実装されているが、クリックすると背景が変わらないという問題があります。 クリック可能な背景を作成してフレームに設定するにはどうすればよいですか?Xamarin.Forms、クリック可能なフレーム(バックグラウンド)を作成]ボタンとして

答えて

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; 
      } 
     } 
    } 

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

関連する問題