C#/ XAML错误'button_Click'没有重载匹配委托'Windows.UI.Xaml.RoutedEventHandler'

Kat*_*a M 2 c# xaml controls event-handling windows-phone

每次点击一个按钮时,我都试图在App.xaml中为两个以前定义的样式切换多个按钮.我尝试了一个通用的事件处理程序但它会显示错误'button_Click'的重载与委托'Windows.UI.Xaml.RoutedEventHandler'匹配.我相信它与签名有关,但无法解决它.这是MainPage.xaml.cs中实现的方法

public void button_Click(object sender, EventArgs e)
    {
        var button = (Button)sender;
        if (button.Style != myButtonStyle)
            button.Style = myButtonStylePressed;
        else
            button.Style = myButtonStyle;
    }
Run Code Online (Sandbox Code Playgroud)

这是在一个按钮示例中在MainPage.xaml中实现的方式.

<Button Name="Row5Col4"
            Grid.Row ="5"
            Grid.Column ="4"
            Margin="10, 10, 10, 10"
            Height="10"
            Width="10" 
            HorizontalAlignment="Left"
            BorderThickness="0"
            Style="{StaticResource myButtonStyle}"
            Click="button_Click"
            >
    </Button>
Run Code Online (Sandbox Code Playgroud)

重要提示:有些人建议使用MouseClick而不是Click,但这不起作用,因为它是WP应用程序.我很感激你的到来.

根据Visual Studio导致错误的行是这一行 Click ="button_Click"

Bur*_*öse 7

Button的Click事件没有EventArgs的参数类型.根据MSDN页面,它必须是RoutedEventArgs

所以你的代码必须是:

public void button_Click(object sender, RoutedEventArgs e)
{
    var button = (Button)sender;
    if (button.Style != myButtonStyle)
        button.Style = myButtonStylePressed;
    else
        button.Style = myButtonStyle;
}
Run Code Online (Sandbox Code Playgroud)