좋아, 그래서 좀 이상한 행동을 WPF ProgressBar 컨트롤을 어지럽히는 동안 발견. 이 컨트롤은 ListView 컨트롤의 열에 있으며 일반 상황은 본질적으로 this question & answer과 약간 다릅니다. WPF ProgressBar가 너무 빨리 업데이트 될 때 깜박임 - 버그?
내가 분명히 몇 가지 속성 (Min
,
Max
,
Value
), 모든 한방향 바인딩에 의해 클래스에
Progressbar
을 결합한다. 이 다른 클래스는 다른 스레드에서 업데이트되고 정기적으로
INotifyPropertyChanged
인터페이스를 사용하여 ProgressBar가 상태가 진행 중임을 알립니다. 그리고이 모든 것이 훌륭합니다!
하지만 이상하게 여기는 부분이 있습니다. 내 ProgressBar는 Max
(= 100 %) 값에 도달 할 때까지 바로 빛을 잃습니다. 그런 다음 갑자기 녹색 막대 전체에 흰 빛이 나는 물건을 펄싱하기 시작합니다. 이것은 매우 짜증납니다. 나는 진전을 이유와 함께 보여주고 있는데, 일단 맥박이 없다는 사실을 알기 시작하면 실제로 맥이 빠져 나간다.
따라서 디버깅을 시작했습니다. 나는 내 스레드 처리에서 Thread.Sleep(1000)
으로 발견, 그것은 여전히 빛을 숨겼지만, 만약 내가 그것을 Thread.Sleep(1500)
에 부딪쳤다면 놀랄만 한 활기로 언제나 돌아온다. 그 후 정수 단위 값을 변경하는 데 시간이 오래 걸리므로 진행 단위를 작은 숫자로 변환하려고했습니다. 최소값 0, 최대 값 100에는 여전히 광선이 없습니다. 최소값 0, 최대 값 10은 전체 활력으로 되돌아 왔습니다. 모든 경우에 100 %에 도달하는 데 소요되는 시간과 작업량은 동일하지만, 표시되는 광선에 대해 매우 눈에 띄는 이진 예/아니오 효과입니다. 내가 테스트하지 않은 유일한 것은 ProgressBar가이 ListView 컨트롤 안에 위치하지 않을 때 발생하는지 여부입니다.
나는 (XAML과 관련된) ProgressBar 컨트롤의 깊은 WPF 내부를 이해할 수 없다는 것을 잘 알고 있습니다. 그래서 저는이 사람이 이것이 알려진 버그인지, 비틀 거 렸는지, 또는 해결 방법을 알고 있을지도 모른다고 알고 있습니다.
내 컴퓨터는 Windows 7을 실행하며 .NET Framework 4 Client Profile을 대상으로 VS2010으로 개발 중입니다.