2014-10-22 4 views
0

Я недавно начал изучать разработку приложений для Windows без знания C#, и я хотел создать приложение, которое отображает случайное изображение на ImageBox при нажатии кнопки.Как выбрать случайное изображение

Как я могу сделать случайное изображение (из списка) каждый раз, когда пользователь нажимает кнопку?

Вот все, что я до сих пор:

myImage.Source = new BitmapImage(new Uri("/Images/Pic1.png", UriKind.Relative)); 
+1

Это похоже на действительный код для загрузки статического изображения; какие попытки вы сделали, чтобы изменить его, чтобы быть случайным? – Claies

+0

У меня нет подсказки ... Я смотрел учебник и следил за этим, но человек никогда не показывал, как отображать случайное изображение. – Hunt3R

+0

Вы хотите, чтобы вы выбрали случайное изображение из набора предопределенных изображений или создать изображение на лету со случайно заполненными пикселями? Или что? – dbc

ответ

2

Если у вас есть список изображений, или изображения именования, то это легко.

Например, если ваши изображения были названы «Pic1» через «pic10», а затем просто использовать:

const int numberOfImages = 10; 
var rand = new Random(); 
int imageNumber = rand.Next(numberOfImages) + 1; 
string imageName = string.Format("/Images/Pic{0}.png", imageNumber); 
myImage.Source = new BitmapImage(new Uri(imageName, UriKind.Relative)); 

Или, если у вас есть массив с именами доступных изображений:

string[] imageNames = { "Pic1.png", "AnotherPic.png" }; 
var rand = new Random(); 
string imageName = imageNames[rand.Next(imageNames.Length)]; 
string imageName = string.Concat("/Images/", imageName); 
myImage.Source = new BitmapImage(new Uri(imageName, UriKind.Relative)); 

Редактировать

Это более сложно, чем вы думаете, чтобы перечислить изображения «Ресурс» во время выполнения. See here for a discussion of this topic.

Edit # 2

На самом деле, один из ответов из приведенной выше ссылке имеет отличный подход - use a T4 template to generate the list of images at compile time.

+0

спасибо, это сработало :) – Hunt3R

Смежные вопросы