2015-01-23 4 views
1

Я использую Image в качестве кнопки. Поэтому мне нужно, чтобы источник изображения был /image1.png по умолчанию, и когда я нажимаю на изображение, он выполняет функцию if и меняет источник изображения на /image2.png. Я правильно изменяю изображение, проблема в том, что я должен щелкнуть два раза изображение, которое нужно изменить, когда оно будет нажато первым.Как изменить источник изображения после нажатия кнопки?

Это то, что я использую:

public MainWindow() 
    { 
     InitializeComponent(); 
     IsPlaying = false; 
     //PlayBtn.Source = (ImageSource)new ImageSourceConverter().ConvertFrom(@"C:\Users\myusername\Documents\Visual Studio 2013\Projects\Project1\Project1WPF\image1.png"); 
    } 

private void PlayBtn_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     if(IsPlaying == false) 
     { 

      PlayBtn.Source = (ImageSource)new ImageSourceConverter().ConvertFrom(@"C:\Users\myusername\Documents\Visual Studio 2013\Projects\Project1\Project1WPF\image1.png"); 
      IsPlaying = true; 
     }else if(IsPlaying == true) 
     { 

      PlayBtn.Source = (ImageSource)new ImageSourceConverter().ConvertFrom(@"C:\Users\myusername\Documents\Visual Studio 2013\Projects\Project1\Project1WPF\image2.png"); 
      IsPlaying = false; 
     }  

ответ

0

Чтобы исправить проблему, просто установить начальное состояние правильно. В настоящее время у вас есть это:

  1. Изображение начинается с "image1".
  2. Конструктор устанавливает isPlaying в false
  3. Вы нажимаете кнопку
  4. Обработчик работает, так как isPlaying является false, изображение устанавливается в «image1» (ваш первый блок)
  5. isPlaying установлен в true
  6. Вы снова нажмете на кнопку
  7. Обработчик работает снова, так как isPlayingtrueфоторадом установлен на изображение "image2".

Так как оборотная, какое изображение устанавливается, когда текущее значение false, или установить начальное значение для true, чтобы получить поведение, вы можете описать.

В отличие от вас, , вероятно, не должен делать это вообще в коде. Свойство Source должно быть привязано к вашей модели просмотра (через конвертер), а кнопка Command кнопки изменяет этот источник.

+0

Итак, я должен изменить начальное значение на true? Правильно? – ChrisCreateBoss

+0

@ChrisCreateBoss Наверное, если это имеет смысл в контексте остальной части программы. – BradleyDotNET

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