최근에 프로젝트를 진행하다가 이전 동료가 작성한 진행률 표시줄이 매우 효과적인 것을 보고 단순화했습니다. 눈에 띄지는 않지만 여전히 프로젝트에 유용합니다.
그래도 호출 후의 효과를 먼저 살펴보겠습니다
1. ProgressbBar의 Foreground 표시가 동일해야 하므로 컨트롤을 설정하는 매개변수가 있어야 하므로 매개변수 값 ForegroundColor
public int ForegroundColor {get{return _foregroundColor; }set{ _foregroundColor = value; LinearGradientBrush lgb = dictionary["ForegroundColor" + value] as LinearGradientBrush;if (lgb != null) proBar.Foreground = txt.Foreground = percent.Foreground = lgb; } }
코드에 "LinearGradientBrush lgb = Dictionary["ForegroundColor" + value] as LinearGradientBrush;"라는 문장이 있습니다. 이는 이 매개변수를 사용하여 스타일 파일에서 스타일을 쉽게 얻을 수 있도록 하기 위한 것입니다.
<LinearGradientBrush x:Key="ForegroundColor1" EndPoint="1,0.5" StartPoint="0,0.5"><GradientStop Color="#FFBBF586" Offset="0.5"/><GradientStop Color="#FFD4F9C3" Offset="1"/></LinearGradientBrush><LinearGradientBrush x:Key="ForegroundColor2" EndPoint="1,0.5" StartPoint="0,0.5"><GradientStop Color="#FF5BE26E" Offset="0.5"/><GradientStop Color="#FF8DEC9C" Offset="1"/></LinearGradientBrush><LinearGradientBrush x:Key="ForegroundColor3" EndPoint="1,0.5" StartPoint="0,0.5"><GradientStop Color="#FFB656F2" Offset="0.5"/><GradientStop Color="#FFAE8DFE" Offset="1"/></LinearGradientBrush><LinearGradientBrush x:Key="ForegroundColor4" EndPoint="1,0.5" StartPoint="0,0.5"><GradientStop Color="#FF3AE9E9" Offset="0.5"/><GradientStop Color="#FF8DFDFE" Offset="1"/></LinearGradientBrush>
2. ProgressBar이므로 진행률 값이 있어야 합니다. 이 값을 표시하려면 TextBlock을 사용하여 페이지에 실시간 알림을 제공해야 합니다.
public string ValueText {get{return _valueText; }set{ _valueText = value;if (this.PropertyChanged != null) {this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("ValueText")); } } }
3. 진행 효과를 지속적으로 업데이트하려면 백그라운드 스레드를 활성화하세요
private void Bgw_DoWork(object sender, DoWorkEventArgs e) {for (int i = 0; i < BarValue; i++) { System.Threading.Thread.Sleep(50); proBar.Dispatcher.Invoke(new Action( delegate{if (proBar.Value <= BarValue) { proBar.Value++; } })); ValueText = i + ""; } ValueText = BarValue + ""; }
소스 코드
위 내용은 WPF에서 간단한 진행률 표시줄을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!