所以基本上我在下面做的就是创建一个简单的动画按钮' Button的子类,我打算在我的UI中使用它来执行基本动画。我故意将它作为子类,因为我是Xamarin的新手,而且由于Forms是我的第一个项目,我想避免使用自定义渲染器,因为我不熟悉所有三个不同平台的个别代码。
class AnimatedButton : Button
{
public AnimatedButton(string buttonText, ImageSource backgroundImage = null)
{
Text = buttonText;
//TextColor = Color.FloralWhite;
FontAttributes = FontAttributes.Bold;
Opacity = 0.8;
BorderRadius = 25;
BorderWidth = 1;
BorderColor = Color.AliceBlue;
Clicked += AnimatedButton_Clicked;
if (backgroundImage != null)
{
//Set Background Image
}
}
private async void AnimatedButton_Clicked(object sender, EventArgs e)
{
await this.ScaleTo(0.9, 50, Easing.SinIn);
await this.FadeTo(1, 50, Easing.SinOut);
await this.FadeTo(0.8, 50, Easing.SinIn);
await this.ScaleTo(1, 50, Easing.SinOut);
}
}
请参阅?简单。无论如何在我的用户界面中我需要我的按钮来引起其他事件,如菜单移动等等。显然,下面的代码不起作用,但我展示了我希望能做的事情:
for (int i = 0; i < count; i++)
{
grid.RowDefinitions.Add(rowCollection[i]);
AnimatedButton button = new AnimatedButton(menuOptions.MyTypeDataList[1].TitleText);
button.Clicked += TestClicked;
grid.Children.Add(button, 0, i + 1);
}
}
private void TestClicked(object sender, EventArgs e)
{
//Perform Action
}
只有最后一次Clicked + = TestClicked事件才有效。动画是否无效,因为我无法将多个点击处理程序连接到同一个按钮?或者我只是做错了?我应该如何在Xamarin中解决这个问题
由于