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