>백엔드 개발 >C#.Net 튜토리얼 >WPF에서 간단한 진행률 표시줄을 구현하는 방법은 무엇입니까?

WPF에서 간단한 진행률 표시줄을 구현하는 방법은 무엇입니까?

零下一度
零下一度원래의
2017-06-23 15:17:554551검색

최근에 프로젝트를 진행하다가 이전 동료가 작성한 진행률 표시줄이 매우 효과적인 것을 보고 단순화했습니다. 눈에 띄지는 않지만 여전히 프로젝트에 유용합니다.

그래도 호출 후의 효과를 먼저 살펴보겠습니다

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.