Je travaillais sur un projet récemment, et j'ai vu que la barre de progression écrite par mon ancien collègue était très efficace, je l'ai donc simplifiée, ce n'est pas fulgurant, mais c'est quand même suffisant pour le projet.
Jetons également un coup d'œil à l'effet après l'appel d'abord
1 Parce que l'affichage au premier plan de ProgressbBar doit être le même, il doit y en avoir. être un paramètre pour Le contrôle est défini, donc une valeur de paramètre 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; } }
est définie Il y a une telle phrase dans le code "LinearGradientBrush lgb = dictionnaire["ForegroundColor" +. value] as LinearGradientBrush;" Il est pratique d'utiliser ce paramètre pour obtenir le style du fichier de style.
<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. Puisqu'il s'agit d'une ProgressBar, elle doit avoir une valeur de progression Nous utilisons TextBlock pour afficher cette valeur. Nous devons implémenter l'interface de notification pour assurer une notification en temps réel. . sur la page.
public string ValueText {get{return _valueText; }set{ _valueText = value;if (this.PropertyChanged != null) {this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("ValueText")); } } }
3. Activer un fil d'arrière-plan pour mettre à jour en permanence l'effet de progression
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 + ""; }
Code source
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!