2014-11-27 6 views
0

간격 훈련 앱인 앱에 확실한 진행률 막대를 추가했습니다.진행률 막대를 간격에 바인딩하는 방법?

http://www.windowsphone.com/en-ie/store/app/simple-training-timer/2f946ba9-ffd9-4f98-85a5-c67f97868ebe

이 선언 : 타이머는 많은 응모 오프 이런 종류의 같은 라운드의 세트 번호에 대한이 순서를 반복하고 초 일련 번호를 중지 초 일련 번호 시작 진행 내 코드 막대 :

ProgressBar IsIndeterminate="False" x:Name="overallProgressBar" Maximum="100" Width="200" Margin="114,214,142,288" FontWeight="Bold" Style="{StaticResource ProgressBarStyle2}" 

그리고 이것은 내가 timer_tick에서 증가하는 진행률 표시 줄 설정 호출하는 방법입니다

 void myTimer_Tick(object sender, EventArgs e) 
     { 


       // update the textblock on the display 
       // with hh, mm, ss, ms 
       ms = myStopwatch.ElapsedMilliseconds; 

       ss = ms/1000; 
       ms = ms % 1000; 

       mm = ss/60; 
       ss = ss % 60; 

       hh = mm/60; 
       mm = mm % 60; 

       overallProgressBar.Value = ms; 


       tblDisplay.Text = hh.ToString("00") + " : " + 
            mm.ToString("00") + " : " + 
            ss.ToString("00") + " : " + 
            ms.ToString("000"); 



       //method to trigger timer stop and start at user input intervals 
       intervalTrigger(ref workTm, ref restTm); 


     } 

현재이 코드는 진행중인 입력 줄과 동기화되지 않은 약 5 초 후에 진행률 막대를 실행합니다.

나는 이러한 작업을 순서대로 실행하기 위해 진행률 표시 줄을 설정하려고하는데이를 달성하는 방법을 알고있는 사람이 있습니까?

+0

'Timespan'을 보았습니까 – theMayer

+0

예 코드 전체가 표시되지 않았습니다. 시간 간격을두고 시간 간격을두고 기다리고 있습니다. 진행률 막대를 얻을 수있는 방법이 있습니다. 사용자가 입력 한 시간대에 대해 timer_tick에서 시간 경과와 동기화하여 진행합니까? 예를 들어 각 작업의 끝을 알리는 workTIMESpan이 있습니다. –

답변

2

ProgressBar은 정확히 무엇을 나타낼 예정입니까? 귀하의 질문은 명확하지 않습니다.

ProgressBar에 의해 측정되는 구간의 지속 시간을 정의 workTimeSpan라는 TimeSpan 필드를 가정하고, 그 간격 내에서 진행 상황을 표시 할 가정 :

void myTimer_Tick(object sender, EventArgs e) 
{ 
    overallProgressBar.Value = 
     myStopwatch.ElapsedMilliseconds/workTimeSpan.TotalMilliseconds * 100; 

    // update the textblock on the display 
    // with hh, mm, ss, ms 
    tblDisplay.Text = myStopwatch.Elapsed.ToString("hh:mm:ss.fff"); 

    //method to trigger timer stop and start at user input intervals 
    intervalTrigger(ref workTm, ref restTm); 
} 

WPF에서 더 나은 버전을 결합하는 것 값을 속성으로 제어하지만 위의 코드가 작동합니다.

ProgressBar이 다른 것을 나타내는 것으로 가정하면 표현할 내용, 코드에있는 정보의 위치 및 업데이트 방법을 구체적으로 설명하십시오. https://stackoverflow.com/help/mcve

+0

죄송합니다. 좀 더 명확하게 설명 드리겠습니다. ProgressBar는 workTimeSpan의 각 간격 완료를 나타냅니다. 따라서 WorkTimeSpan의 한 라운드가 경과하면 restTimeSpan.Will 트라이얼 코드가 실행 된 후 바가 다시 시작되고 다시 시작됩니다. –

+0

새로운 간격이 시작할 때마다 'Stopwatch'를 재설정해야합니다. 그러나 예, 설명에 기반하여 필자가 제공 한 코드 예제가 효과가 있습니다. –

+0

restTimeSpan에 의해 결정되는 두 번째 진행률 막대를 추가했지만 restProgressBar를 실행하면 workPorgress 막대가있는 insync가 실행됩니다. 작업 바를 마친 후에는 나머지 바가 잘 움직여야하므로 원하는 결과가 아닙니다. 내가 어떻게 해결할 수 있을지 생각해? 그래서 이것은 두 번째 진행률 막대'restProgressBar.Value = myStopwatch.ElapsedMilliseconds/restTm을 구현 한 방법입니다.TotalMilliseconds * 100;' –

1

각 작업에 대한 완료 비율을 예상 한 다음 작업이 완료 될 때마다 완료 비율의 함수로 진행률 막대를 조정하십시오.

일반적으로 타이머를 사용하여 진행률 표시 줄을 만들 수는 없습니다. 실제로 작업 시간을 알 수있는 방법이 없기 때문입니다.

관련 문제