2014-09-30 48 views
0

我有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; 
} 

回答

0

省略号没有背景属性。他们具有填充属性,您可以使用此代码更改它们。

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

此代码将更改被单击的椭圆的填充属性。

如果我没有错,你已经给椭圆添加了一个Click事件。省略号没有Click属性。您可以尝试MouseLeftButtonUp事件。

+0

不要我必须指定手指指数还是会覆盖所有的椭圆形? – 2014-09-30 13:48:09

+0

它不会改变 – 2014-09-30 13:49:53

+0

检查我编辑的答案 – cKNet 2014-09-30 13:54:42

0

这是我的问题的解决方案。我设法做这样

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))); 
相关问题