2017-04-05 84 views
0

我可以加載圖片到UImageView與我點擊一個按鈕,但不是從一個計時器。這是爲什麼 ?我該如何解決它?Xamarin工作室UIImageView

這裏是我的代碼:

void _timer_Elapsed(object sender, ElapsedEventArgs e) 
{ 
    Patter_Function(); 
    switch_Function(); 
} 



void switch_Function() 
{ 

    image1 = new UIImage(); 
    image1 = UIImage.FromBundle("heart"); 

    image2 = new UIImage(); 
    image2 = UIImage.FromFile(@"White_Sharingan.png"); 

    image3 = new UIImage(); 
    image3 = UIImage.FromFile("snow.png"); 

    image4 = new UIImage(); 
    //image4.//FromFile("Images/waterfront.jpg"); 



     switch (Patter_1[switch_Counter].Move0) { 
     case 0 : 
      Box_1.Image = image1; 
      break; 
       case 1 : 
       Box_1.Image = image1; 
       break; 
       case 2 : 
       Box_2.Image = image1; 
       break; 
       case 3: 
       Box_3.Image = image1; 
       break; 
       case 4: 
       Box_4.Image = image1; 
       break; 
       case 5: 
       Box_5.Image = image1; 
       break; 
       case 6: 
       Box_6.Image = image1; 
       break; 
       case 7: 
       Box_7.Image = image1; 
       break; 
       case 8: 
       Box12.Image = image1; 
       break; 
       case 9: 
       Box_9.Image = image1; 
       break; 
       case 10: 
       Box_10.Image = image1; 
       break; 
       case 11: 
       Box_11.Image = image1; 
       break; 
       case 12: 
       Box8.Image = image1; 
       break; 
       case 13: 
       Box_13.Image = image1; 
       break; 
       case 14: 
       Box_14.Image = image1; 
       break; 
       case 15: 
       Box_15.Image = image1; 
       break; 
       case 16: 
       Box_16.Image = image1; 
       break; 
       case 17: 
       Box_17.Image = image1; 
       break; 
       case 18: 
       Box_18.Image = image1; 
       break; 
       case 19: 
       Box_19.Image = image1; 
       break; 
       case 20: 
       Box_20.Image = image1; 
       break;} 


     switch (Patter_1[switch_Counter].Move1) 
     { 
      case 0: 
       Box_1.Image = image2; 
       break; 
      case 1: 
       Box_2.Image = image2; 
       break; 
      case 2: 
       Box_2.Image = image2; 
       break; 
      case 3: 
       Box_3.Image = image2; 
       break; 
      case 4: 
       Box_4.Image = image2; 
       break; 
      case 5: 
       Box_5.Image = image2; 
       break; 
      case 6: 
       Box_6.Image = image2; 
       break; 
      case 7: 
       Box_7.Image = image2; 
       break; 
      case 8: 
       Box12.Image = image2; 
       break; 
      case 9: 
       Box_9.Image = image2; 
       break; 
      case 10: 
       Box_10.Image = image2; 
       break; 
      case 11: 
       Box_11.Image = image2; 
       break; 
      case 12: 
       Box8.Image = image2; 
       break; 
      case 13: 
       Box_13.Image = image2; 
       break; 
      case 14: 
       Box_14.Image = image2; 
       break; 
      case 15: 
       Box_15.Image = image2; 
       break; 
      case 16: 
       Box_16.Image = image2; 
       break; 
      case 17: 
       Box_17.Image = image2; 
       break; 
      case 18: 
       Box_18.Image = image2; 
       break; 
      case 19: 
       Box_19.Image = image2; 
       break; 
      case 20: 
       Box_20.Image = image2; 
       break; 
     } 

    switch (Patter_1[switch_Counter].Move2) 
    { 
     case 0: 
      Box_1.Image = image3; 
      break; 
     case 1: 
      Box_2.Image = image3; 
      break; 
     case 2: 
      Box_2.Image = image3; 
      break; 
     case 3: 
      Box_3.Image = image3; 
      break; 
     case 4: 
      Box_4.Image = image3; 
      break; 
     case 5: 
      Box_5.Image = image3; 
      break; 
     case 6: 
      Box_6.Image = image3; 
      break; 
     case 7: 
      Box_7.Image = image3; 
      break; 
     case 8: 
      Box12.Image = image3; 
      break; 
     case 9: 
      Box_9.Image = image3; 
      break; 
     case 10: 
      Box_10.Image = image3; 
      break; 
     case 11: 
      Box_11.Image = image3; 
      break; 
     case 12: 
      Box8.Image = image3; 
      break; 
     case 13: 
      Box_13.Image = image3; 
      break; 
     case 14: 
      Box_14.Image = image3; 
      break; 
     case 15: 
      Box_15.Image = image3; 
      break; 
     case 16: 
      Box_16.Image = image3; 
      break; 
     case 17: 
      Box_17.Image = image3; 
      break; 
     case 18: 
      Box_18.Image = image3; 
      break; 
     case 19: 
      Box_19.Image = image3; 
      break; 
     case 20: 
      Box_20.Image = image3; 
      break; 
    } 

    switch (Patter_1[switch_Counter].Move3) 
    { 
     case 0: 
      Box_1.Image = image4; 
      break; 
     case 1: 
      Box_2.Image = image4; 
      break; 
     case 2: 
      Box_2.Image = image4; 
      break; 
     case 3: 
      Box_3.Image = image4; 
      break; 
     case 4: 
      Box_4.Image = image4; 
      break; 
     case 5: 
      Box_5.Image = image4; 
      break; 
     case 6: 
      Box_6.Image = image4; 
      break; 
     case 7: 
      Box_7.Image = image4; 
      break; 
     case 8: 
      Box12.Image = image4; 
      break; 
     case 9: 
      Box_9.Image = image4; 
      break; 
     case 10: 
      Box_10.Image = image4; 
      break; 
     case 11: 
      Box_11.Image = image4; 
      break; 
     case 12: 
      Box8.Image = image4; 
      break; 
     case 13: 
      Box_13.Image = image4; 
      break; 
     case 14: 
      Box_14.Image = image4; 
      break; 
     case 15: 
      Box_15.Image = image4; 
      break; 
     case 16: 
      Box_16.Image = image4; 
      break; 
     case 17: 
      Box_17.Image = image4; 
      break; 
     case 18: 
      Box_18.Image = image4; 
      break; 
     case 19: 
      Box_19.Image = image4; 
      break; 
     case 20: 
      Box_20.Image = image4; 
      break; 
    } 

    switch_Counter++; 
    if (switch_Counter >4 ) 
    { 
     switch_Counter = 0; 
    } 
} 

我使用的調試,所以我知道代碼越來越向線 但它沒有做任何事情,當它到達那裏 的bebugger說: 的UIKit。 UIKitThreadAccessException:UIKit一致性錯誤:您正在調用只能從UI線程調用的UIKit方法。

有沒有一個爲什麼呢?

回答

0

任何涉及修改UI視圖的操作,都需要在UI /主線程下完成。所以把代碼放在lambda裏面:

InvokeOnMainThread (() => { 
    // manipulate UI controls 
}); 
相關問題