保存后如何将原来的椭圆颜色更改为绿色

本文关键字:颜色 原来 保存 | 更新日期: 2023-09-27 18:25:02

我有5个红色的椭圆,用户将一次选择一个。现在我想在保存后将选定的椭圆更改为绿色。我该怎么做?

private void Right1_Click(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    nfingerIndex = 1;
}
private void Right2_Click(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    nfingerIndex = 2;
}
private void Right3_Click(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    nfingerIndex = 3;
}
private void Right4_Click(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    nfingerIndex = 4;
}
private void Right5_Click(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
    nfingerIndex = 5;
}

保存后如何将原来的椭圆颜色更改为绿色

椭圆没有背景属性。它们具有Fill属性,您可以使用此代码对其进行更改。

 private void Right1_Click(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        nfingerIndex = 1;
        ((Ellipse)sender).Fill = new SolidColorBrush(Colors.Green);
    }

此代码将更改单击的Ellipse的Fill属性。

如果我没有错的话,您已经在Ellipses中添加了Click事件。椭圆没有Click属性。您可以尝试MouseLeftButtonUp事件

这是我的问题的解决方案。我设法做到了像这个

 private void invokeControlColour(int FingerIndex)
    {
        try
        {
            switch (FingerIndex)
            {
                case 1:
                    {
                        Right1.Fill = Brushes.Green;
                        break;
                    }
                case 2:
                    {
                        Right2.Fill = Brushes.Green;
                        break;
                    } 
                case 3:
                    {
                        Right3.Fill = Brushes.Green;
                        break;
                    } 
                case 4:
                    {
                        Right4.Fill = Brushes.Green;
                        break;
                    } 
                case 5:
                    {
                        Right5.Fill = Brushes.Green;
                        break;
                    } 

并像这个一样调用它

               Dispatcher.Invoke(new Action(() => invokeControlColour(nfingerIndex)));