2013-02-01 4 views
1

은 내가 Enter 키를 누릅니다 매번이 기능을 트리거 라벨을 가지고어떤 이미지가 현재 표시되어 있는지 확인하십시오. WPF

위의 하나 (FailSmile2.png) 에 사진을 변경하지만이되고있는 FailSmile2을 있다면 이제, 내가 확인하고 싶은
private void WordInput_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.Enter) 
     { 
      WordInput.Text = String.Empty; 
      Smiley.Source = new BitmapImage(new Uri(@"FailSmile2.png", UriKind.Relative)); 
     } 
    } 

나와 같은 기능으로 대신 다른 그림으로 변경하고 싶습니다. 소스를 확인하기 위해 IF의 cuople을 사용해야합니까? 그렇다면 어떻게?

감사합니다.

답변

2

은 클래스의 private 필드로 저장할 수 : 정확히 당신이 원하는 일에 대해

private string CurrentImagePath; 

private void WordInput_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Key == Key.Enter) 
    { 
     WordInput.Text = String.Empty; 

     if (CurrentImagePath == null) 
      CurrentImagePath = @"FailSmile2.png"; 
     else if (CurrentImagePath == @"FailSmile2.png") 
      CurrentImagePath = @"SomeOtherImage.png"; 

     Smiley.Source = new BitmapImage(new Uri(CurrentImagePath, UriKind.Relative)); 
    } 
} 

확실하지. 여러 이미지를 순환시킬 계획이라면 그 이미지를 한 번에 하나씩 주기적으로 순환하여 저장하는 것이 좋습니다. 본질적으로 어떻게 든 컨트롤의 현재 상태 (비공개 필드로 보일 수 있음)를 저장하고 변경 내용을 기반으로하거나 다른 이벤트를 연결할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 바로 지금, 나는 클릭 할 때 이미지를 바꿀 수있는 효과적인 방법을 원합니다. 나중에 bool이있는 함수를 추가하여 bool 2 (또는 그 이상) 다른 이미지가 표시되면서 무엇인가가 사실인지 아닌지를 확인합니다. 어쩌면 나중에 모든 방법을 다 끝냈을 때 다시 와야 할 것입니다. =)) –

+0

사실 .... 당신 생각은 내가 필요로하는 전부였습니다! 감사! =)) –

관련 문제