|
|
|
@ -8,6 +8,7 @@ namespace Perspex.Controls |
|
|
|
{ |
|
|
|
using Perspex.Controls.Primitives; |
|
|
|
using Perspex.Controls.Templates; |
|
|
|
using System; |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// A control used to indicate the progress of an operation.
|
|
|
|
@ -15,13 +16,15 @@ namespace Perspex.Controls |
|
|
|
public class ProgressBar : RangeBase |
|
|
|
{ |
|
|
|
/// <inheritdoc/>
|
|
|
|
///
|
|
|
|
private Border indicator; |
|
|
|
protected override Size ArrangeOverride(Size finalSize) |
|
|
|
{ |
|
|
|
var size = base.ArrangeOverride(finalSize); |
|
|
|
var b = this.Bounds; |
|
|
|
|
|
|
|
var indicator = this.GetTemplateChild<Border>("PART_Indicator"); |
|
|
|
indicator.Width = finalSize.Width * (this.Value / 100); |
|
|
|
this.indicator = this.indicator ?? this.GetTemplateChild<Border>("PART_Indicator"); |
|
|
|
|
|
|
|
double percent = this.Maximum == this.Minimum ? 1.0 : (this.Value - this.Minimum) / (this.Maximum - this.Minimum); |
|
|
|
indicator.Width = finalSize.Width * percent; |
|
|
|
|
|
|
|
return size; |
|
|
|
} |
|
|
|
|