将一个功能用于多个按钮和值

时间:2019-05-24 16:30:54

标签: c# wpf

我正在编写一个应用程序,以更好地完成我的色彩管理。

因此,我正在使用WPF和C#。现在,我创建了5个矩形,这些矩形应该显示在文本框中输入的颜色。单击按钮时,它们将更新为正确的颜色。也可以通过单击底部的另一个按钮来复制文本框的十六进制值。 现在,这是我到目前为止所拥有的,并且对于一个按钮来说效果很好:

enter image description here

(一张图片,让您可以想象我的意思。)

    private void CmdBtn1_Click(object sender, RoutedEventArgs e)
    {
        //Rectcolor1 collects the value from the textbox
        string RectColor1;
        RectColor1 = TxbRect1.Text;

        //converts the value into hexcode
        Color color = (Color)ColorConverter.ConvertFromString(RectColor1);
        SolidColorBrush myBrush = new SolidColorBrush(color);

        //displays the value by changing the rectangle's color
        Rectangle1.Fill = new SolidColorBrush(color);
    }

这是单击顶部按钮(“ Aktualisieren”)时发生的情况。 但这仅适用于一个按钮,我不想将其粘贴4次。 有没有更好的方式编写此代码而无需复制和粘贴整个代码几次?

2 个答案:

答案 0 :(得分:1)

在您的XAML中:

<Button x:Name="btn1" Click="CmdBtn1_Click />
<Button x:Name="btn2" Click="CmdBtn1_Click />
<!-- Same Click values for all buttons -->

然后在处理程序方法中,您可以通过sender参数找出按下了哪个按钮。您需要将其强制转换为Button

var button = sender as Button;
var name = button.Name; // etc.

答案 1 :(得分:-1)

您可以使用sender.Name或sender.Content来确定单击了哪个按钮。