我正在编写一个应用程序,以更好地完成我的色彩管理。
因此,我正在使用WPF和C#。现在,我创建了5个矩形,这些矩形应该显示在文本框中输入的颜色。单击按钮时,它们将更新为正确的颜色。也可以通过单击底部的另一个按钮来复制文本框的十六进制值。 现在,这是我到目前为止所拥有的,并且对于一个按钮来说效果很好:
(一张图片,让您可以想象我的意思。)
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次。 有没有更好的方式编写此代码而无需复制和粘贴整个代码几次?
答案 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来确定单击了哪个按钮。