2017-04-19 72 views
0

爲按鈕僅限於使用其內部圖像Xamarin.Forms而StackLayout不支持CornerRadius財產,我們決定使用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; 
      } 
     } 
    } 

注:以上代碼會影響所有的幀,從而更好的子類,並創建一個新的框架,以避免整個應用程序的背景顏色過渡。