我想在C#中创建WPF中的WhackaMole游戏。我有点小菜。在for循环中,我试图将“我”的数量添加到“图像”。我收到以下错误:动态创建图像 - 不存在当前上下文
"Error The name 'Image1' does not exist in the current context"
'Image2'也是一样。我正在尝试将图像集成到StackPanel中。
感谢您的帮助:)
public partial class MainWindow : Window
{
Image[] ImageArray = new Image[50];
public MainWindow()
{
Moleini = MoleScore[1];
InitializeComponent();
//string ImageName = "Image";
for (int i = 0; i <= 8; i++)
{
Image Image = new Image();
ImageArray[i] = Image;
Image.Name = "Image" + i.ToString();
}
////Create Images
//for (int i = 0; i <= 8; i++)
//{
// StackPanel1.Children.Add(CreateImage(i));
//}
//Dispacher for Mole to Appear
System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
dispatcherTimer.Interval = TimeSpan.FromSeconds(1);
dispatcherTimer.Start();
//Dispacher for Full Game Time
System.Windows.Threading.DispatcherTimer endGame = new System.Windows.Threading.DispatcherTimer();
endGame.Tick += new EventHandler(endGame_Tick);
endGame.Interval = TimeSpan.FromSeconds(5);
endGame.Start();
}
////Create Image
//public Image CreateImage(int i)
//{
//}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
//Random Number Generator
Random rnd = new Random();
int num = rnd.Next(1, 9);
//If Random Number is "1" Then Image will display
if (num == 1)
{
ImageSource MoleImage = new BitmapImage(new Uri(ImgNameMole));
Image1.Source = MoleImage;
}
//If Random Number does not equal 1
if (num != 1)
{
ImageSource hole = new BitmapImage(new Uri(ImgHole));
Image1.Source = hole;
}
//If Random Number is "2" Then Image will display
if (num == 2)
{
ImageSource MoleImage = new BitmapImage(new Uri(ImgNameMole));
Image2.Source = MoleImage;
}
}
if(num == 2)永远不会碰到原因ü在num!= 1之前检查,这将是true或num == 1 – WhileTrueSleep 2013-05-02 18:08:57
我还有几个if(num == x)语句,这就是说使用生成的随机数显示其他图像。 – Andrew 2013-05-02 18:11:24
你的语义错了..你需要像if(num == 1){...} else if(num == 2){...}等那样去做。 – WhileTrueSleep 2013-05-02 18:12:40