2011-04-14 44 views
5

Làm cách nào để kiểm tra trạng thái của bảng phân cảnh?Cách kiểm tra trạng thái của bảng phân cảnh?

Ví dụ:

if (storyboard.Completed += true) // ??? 
{ 
} 

(Mã này không công việc, vì những lý do rõ ràng.)

+1

Back-ve cho mã nội tuyến; Đoạn mới và thụt lề 4 dấu cách cho các khối mã (chọn khối mã và nhấn nút "{}" trong trình chỉnh sửa). Happy SO'ing. –

+0

Cảm ơn! Tôi luôn tự hỏi tại sao trình soạn thảo mã lại ghét tôi ... – JavaAndCSharp

+0

chỉ muốn kiểm tra xem liệu câu trả lời dưới đây có phù hợp với câu hỏi của bạn hay không. –

Trả lời

4

Chỉ cần móc sự kiện Completed và khi mã của bạn chạy trong đó, bảng phân cảnh sẽ được hoàn thành. Xem: http://msdn.microsoft.com/en-us/library/system.windows.media.animation.timeline.completed(VS.95).aspx#Y565

+0

Tôi sẽ sử dụng cái này như thế nào? (ví dụ: storyboard.Completed + = Completed;) – JavaAndCSharp

+0

Đúng vậy. Xem mẫu trên http://samples.msdn.microsoft.com/Silverlight/SampleBrowser/index.htm#/?sref=change_targetname_2 (nhấp vào nút "Xem mã nguồn mẫu" rồi nhấn nút C# xuất hiện trên đó trang ở trên cùng). –

4

thế nào về việc tạo ra một biến boolean (ví dụ IsCompleted) và thiết lập nó là true trong callback Completed ?

1
if(storyboard.GetCurrentState() == ClockState.Active) 
{ 
    // do something 
} 
0

Điều này không hiệu quả.

  Storyboard storyBoardPulse = this.FindResource("StoryboardMainIconPulse") as Storyboard; 
 
      Storyboard.SetTarget(storyBoardPulse, this.imageIcon); 
 

 
      if (storyBoardPulse.GetCurrentState() != ClockState.Active) 
 
      { 
 
       storyBoardPulse.Begin(); 
 
      }

được trở lại lỗi này:

System.InvalidOperationException was unhandled by user code

HResult=-2146233079

Message=Impossible to execute the action. the Storyboard specify not applied to this object for interactive control.

Ao tôi thực hiện một cách giải quyết rất đẫm máu:

private Boolean pulseOn; 
 

 
private void operationsOfMaintenance_OperationExpired(Boolean state) 
 
     { 
 
      Storyboard storyBoardPulse = this.FindResource("StoryboardMainIconPulse") as Storyboard; 
 
      Storyboard.SetTarget(storyBoardPulse, this.imageIcon); 
 

 
      if (!state) 
 
      { 
 
       storyBoardPulse.Stop(); 
 
       storyBoardPulse.Remove(); 
 
       pulseOn = false; 
 
      } 
 
      else 
 
      { 
 
       if(!pulseOn)storyBoardPulse.Begin(); 
 
       pulseOn = true; 
 
      } 
 
     }

Có bất kỳ lý do gì để biết tại sao ví dụ đầu tiên gặp lỗi!

cảm ơn

Các vấn đề liên quan