Вот что у меня есть:
private void HeroMouseEnter(object sender, MouseEventArgs e)
{
//I did things this was because it is easier to maintain code in a sense that is is a generic
//method made for all of the heroes images.
((Image)sender).Source = GetGlowingImage(((Image)sender).Name);
}
private void HeroMouseLeave(object sender, MouseEventArgs e)
{
//I did this IF conditional because I want to ask, "If the sender object
//is the hero selected, then do NOT change the image to normal.
if (SelectedHero != ((Image)sender).Name)
{
//I did things this was because it is easier to maintain code in a sense that is is a generic
//method made for all of the heroes images.
((Image)sender).Source = GetNormalImage(((Image)sender).Name);
}
}
private void HeroMouseClick(object sender, MouseEventArgs e)
{
if (!HasSelectedAHeroBefore)
{
HasSelectedAHeroBefore = true;
//Created a generic way to play the announcers voice according to where a user clicked.
string soundfile = "AnnouncerVoice/" + ((Image)sender).Name + ".mp3";
soundPlayer.Open(new Uri(soundfile, UriKind.Relative));
soundPlayer.Play();
//I call the MouseEnter event in order to have the clicked picture glow and set the Selected bool to true
//to keep it highlighted.
SelectedHero = ((Image)sender).Name;
}
else if (HasSelectedAHeroBefore)
{
//Created a generic way to play the announcers voice according to where a user clicked.
string soundfile = "AnnouncerVoice/" + ((Image)sender).Name + ".mp3";
soundPlayer.Open(new Uri(soundfile, UriKind.Relative));
soundPlayer.Play();
//I call the MouseEnter event in order to have the clicked picture glow and set the Selected bool to true
//to keep it highlighted.
SelectedHero = ((Image)sender).Name;
PreviousSelectedHero = ((Image)sender).Name;
}
}
Cliffnotes того, что я хочу.
Когда пользователь наводит указатель мыши на мои картинки, я хочу, чтобы картинки светились. Я достигаю этого, меняя изображение на фотошоп (с жаром) на MouseEnter. На MouseLeave я переключаю изображение обратно на нормальное.
Когда пользователь щелкает, я хочу, чтобы изображение, на которое нажали, осталось с тем, что я сделал. Все время, когда пользователь перемещает свою мышь, я все еще хочу, чтобы они светились на MouseEnter и гасли на MouseLeave.
Наконец, если пользователь щелкает изображение, отличное от выбранного, щелкнутое изображение должно оставаться выделенным (светящимся), как и ранее.
Я так озадачен и уверен, что это легко исправить, я просто немного заржавел.
Огромное спасибо за помощь. : D
Редактировать: Аплогиз, я забыл упомянуть, что не работает. ВСЕ слова точно соответствуют тому, как я хочу, однако, когда я нажимаю на другое изображение, предыдущее остается светящимся (как выбранное), пока я не наведу на него мышь и не оставлю ее.
Edit2: я добавил что-то, что может работать. Но я не знаю, как выбрать элемент управления изображения по его имени. Любая помощь?
else if (HasSelectedAHeroBefore)
{
//Created a generic way to play the announcers voice according to where a user clicked.
string soundfile = "AnnouncerVoice/" + ((Image)sender).Name + ".mp3";
soundPlayer.Open(new Uri(soundfile, UriKind.Relative));
soundPlayer.Play();
//I call the MouseEnter event in order to have the clicked picture glow and set the Selected bool to true
//to keep it highlighted.
PreviousSelectedHero = SelectedHero;
//Here I want to select the Image control by it's Name property. But it says I can't convert string to Image. ANy help?
GetNormalImage(((Image)PreviousSelectedHero).Name);
SelectedHero = ((Image)sender).Name;
}