一个按钮上有多个Click事件?

时间:2017-07-07 01:50:13

标签: c# xamarin xamarin.forms cross-platform

所以基本上我在下面做的就是创建一个简单的动画按钮' 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中解决这个问题

由于

0 个答案:

没有答案