diff --git a/src/Avalonia.Controls/ProgressBar.cs b/src/Avalonia.Controls/ProgressBar.cs
index daf6be12d2a..7dcdaa2f8da 100644
--- a/src/Avalonia.Controls/ProgressBar.cs
+++ b/src/Avalonia.Controls/ProgressBar.cs
@@ -17,7 +17,13 @@ namespace Avalonia.Controls
[PseudoClasses(":vertical", ":horizontal", ":indeterminate")]
public class ProgressBar : RangeBase
{
- public class ProgressBarTemplateProperties : AvaloniaObject
+ ///
+ /// Provides calculated values for use with the 's control theme or template.
+ ///
+ ///
+ /// This class is NOT intended for general use outside of control templates.
+ ///
+ public class ProgressBarTemplateSettings : AvaloniaObject
{
private double _container2Width;
private double _containerWidth;
@@ -26,38 +32,38 @@ public class ProgressBarTemplateProperties : AvaloniaObject
private double _container2AnimationStartPosition;
private double _container2AnimationEndPosition;
- public static readonly DirectProperty ContainerAnimationStartPositionProperty =
- AvaloniaProperty.RegisterDirect(
+ public static readonly DirectProperty ContainerAnimationStartPositionProperty =
+ AvaloniaProperty.RegisterDirect(
nameof(ContainerAnimationStartPosition),
p => p.ContainerAnimationStartPosition,
(p, o) => p.ContainerAnimationStartPosition = o, 0d);
- public static readonly DirectProperty ContainerAnimationEndPositionProperty =
- AvaloniaProperty.RegisterDirect(
+ public static readonly DirectProperty ContainerAnimationEndPositionProperty =
+ AvaloniaProperty.RegisterDirect(
nameof(ContainerAnimationEndPosition),
p => p.ContainerAnimationEndPosition,
(p, o) => p.ContainerAnimationEndPosition = o, 0d);
- public static readonly DirectProperty Container2AnimationStartPositionProperty =
- AvaloniaProperty.RegisterDirect(
+ public static readonly DirectProperty Container2AnimationStartPositionProperty =
+ AvaloniaProperty.RegisterDirect(
nameof(Container2AnimationStartPosition),
p => p.Container2AnimationStartPosition,
(p, o) => p.Container2AnimationStartPosition = o, 0d);
- public static readonly DirectProperty Container2AnimationEndPositionProperty =
- AvaloniaProperty.RegisterDirect(
+ public static readonly DirectProperty Container2AnimationEndPositionProperty =
+ AvaloniaProperty.RegisterDirect(
nameof(Container2AnimationEndPosition),
p => p.Container2AnimationEndPosition,
(p, o) => p.Container2AnimationEndPosition = o);
- public static readonly DirectProperty Container2WidthProperty =
- AvaloniaProperty.RegisterDirect(
+ public static readonly DirectProperty Container2WidthProperty =
+ AvaloniaProperty.RegisterDirect(
nameof(Container2Width),
p => p.Container2Width,
(p, o) => p.Container2Width = o);
- public static readonly DirectProperty ContainerWidthProperty =
- AvaloniaProperty.RegisterDirect(
+ public static readonly DirectProperty ContainerWidthProperty =
+ AvaloniaProperty.RegisterDirect(
nameof(ContainerWidth),
p => p.ContainerWidth,
(p, o) => p.ContainerWidth = o);
@@ -103,29 +109,57 @@ public double Container2AnimationEndPosition
private Border? _indicator;
private IDisposable? _trackSizeChangedListener;
+ ///
+ /// Defines the property.
+ ///
public static readonly StyledProperty IsIndeterminateProperty =
AvaloniaProperty.Register(nameof(IsIndeterminate));
+ ///
+ /// Defines the property.
+ ///
public static readonly StyledProperty ShowProgressTextProperty =
AvaloniaProperty.Register(nameof(ShowProgressText));
+ ///
+ /// Defines the property.
+ ///
public static readonly StyledProperty ProgressTextFormatProperty =
AvaloniaProperty.Register(nameof(ProgressTextFormat), "{1:0}%");
+ ///
+ /// Defines the property.
+ ///
public static readonly StyledProperty OrientationProperty =
AvaloniaProperty.Register(nameof(Orientation), Orientation.Horizontal);
+ ///
+ /// Defines the property.
+ ///
public static readonly DirectProperty PercentageProperty =
AvaloniaProperty.RegisterDirect(
nameof(Percentage),
o => o.Percentage);
+ ///
+ /// Defines the property.
+ ///
public static readonly StyledProperty IndeterminateStartingOffsetProperty =
AvaloniaProperty.Register(nameof(IndeterminateStartingOffset));
+ ///
+ /// Defines the property.
+ ///
public static readonly StyledProperty IndeterminateEndingOffsetProperty =
AvaloniaProperty.Register(nameof(IndeterminateEndingOffset));
+ ///
+ /// Gets the overall percentage complete of the progress
+ ///
+ ///
+ /// This read-only property is automatically calculated using the current and
+ /// the effective range ( - ).
+ ///
public double Percentage
{
get { return _percentage; }
@@ -154,31 +188,50 @@ static ProgressBar()
OrientationProperty.Changed.AddClassHandler((x, e) => x.UpdateIndicatorWhenPropChanged(e));
}
+ ///
+ /// Initializes a new instance of the class.
+ ///
public ProgressBar()
{
UpdatePseudoClasses(IsIndeterminate, Orientation);
}
- public ProgressBarTemplateProperties TemplateProperties { get; } = new ProgressBarTemplateProperties();
+ ///
+ /// Gets or sets the TemplateSettings for the .
+ ///
+ public ProgressBarTemplateSettings TemplateSettings { get; } = new ProgressBarTemplateSettings();
+ ///
+ /// Gets or sets a value indicating whether the progress bar shows the actual value or a generic,
+ /// continues progress indicator (indeterminate state).
+ ///
public bool IsIndeterminate
{
get => GetValue(IsIndeterminateProperty);
set => SetValue(IsIndeterminateProperty, value);
}
+ ///
+ /// Gets or sets a value indicating whether progress text will be shown.
+ ///
public bool ShowProgressText
{
get => GetValue(ShowProgressTextProperty);
set => SetValue(ShowProgressTextProperty, value);
}
+ ///
+ /// Gets or sets the format string applied to the internally calculated progress text before it is shown.
+ ///
public string ProgressTextFormat
{
get => GetValue(ProgressTextFormatProperty);
set => SetValue(ProgressTextFormatProperty, value);
}
+ ///
+ /// Gets or sets the orientation of the .
+ ///
public Orientation Orientation
{
get => GetValue(OrientationProperty);
@@ -193,6 +246,7 @@ protected override Size ArrangeOverride(Size finalSize)
return result;
}
+ ///
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
{
base.OnPropertyChanged(change);
@@ -242,15 +296,14 @@ private void UpdateIndicator()
var barIndicatorWidth = dim * 0.4; // Indicator width at 40% of ProgressBar
var barIndicatorWidth2 = dim * 0.6; // Indicator width at 60% of ProgressBar
- TemplateProperties.ContainerWidth = barIndicatorWidth;
- TemplateProperties.Container2Width = barIndicatorWidth2;
-
- TemplateProperties.ContainerAnimationStartPosition = barIndicatorWidth * -1.8; // Position at -180%
- TemplateProperties.ContainerAnimationEndPosition = barIndicatorWidth * 3.0; // Position at 300%
+ TemplateSettings.ContainerWidth = barIndicatorWidth;
+ TemplateSettings.Container2Width = barIndicatorWidth2;
- TemplateProperties.Container2AnimationStartPosition = barIndicatorWidth2 * -1.5; // Position at -150%
- TemplateProperties.Container2AnimationEndPosition = barIndicatorWidth2 * 1.66; // Position at 166%
+ TemplateSettings.ContainerAnimationStartPosition = barIndicatorWidth * -1.8; // Position at -180%
+ TemplateSettings.ContainerAnimationEndPosition = barIndicatorWidth * 3.0; // Position at 300%
+ TemplateSettings.Container2AnimationStartPosition = barIndicatorWidth2 * -1.5; // Position at -150%
+ TemplateSettings.Container2AnimationEndPosition = barIndicatorWidth2 * 1.66; // Position at 166%
// Remove these properties when we switch to fluent as default and removed the old one.
SetCurrentValue(IndeterminateStartingOffsetProperty,-dim);
diff --git a/src/Avalonia.Controls/SplitView/SplitView.cs b/src/Avalonia.Controls/SplitView/SplitView.cs
index 8060ca95943..3ad656ee3c9 100644
--- a/src/Avalonia.Controls/SplitView/SplitView.cs
+++ b/src/Avalonia.Controls/SplitView/SplitView.cs
@@ -217,8 +217,8 @@ public IDataTemplate PaneTemplate
///
/// Gets or sets whether WinUI equivalent LightDismissOverlayMode is enabled
/// When enabled, and the pane is open in Overlay or CompactOverlay mode,
- /// the contents of the splitview are darkened to visually separate the open pane
- /// and the rest of the SplitView
+ /// the contents of the are darkened to visually separate the open pane
+ /// and the rest of the .
///
public bool UseLightDismissOverlayMode
{
@@ -227,7 +227,7 @@ public bool UseLightDismissOverlayMode
}
///
- /// Gets or sets the TemplateSettings for the SplitView
+ /// Gets or sets the TemplateSettings for the .
///
public SplitViewTemplateSettings TemplateSettings
{
diff --git a/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs b/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs
index 8c59de74209..1794b9260f8 100644
--- a/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs
+++ b/src/Avalonia.Controls/SplitView/SplitViewTemplateSettings.cs
@@ -2,8 +2,10 @@
{
///
/// Provides calculated values for use with the 's control theme or template.
- /// This class is NOT intended for general use.
///
+ ///
+ /// This class is NOT intended for general use outside of control templates.
+ ///
public class SplitViewTemplateSettings : AvaloniaObject
{
internal SplitViewTemplateSettings() { }
diff --git a/src/Avalonia.Themes.Fluent/Controls/ProgressBar.xaml b/src/Avalonia.Themes.Fluent/Controls/ProgressBar.xaml
index 253d85852ef..64a598e3599 100644
--- a/src/Avalonia.Themes.Fluent/Controls/ProgressBar.xaml
+++ b/src/Avalonia.Themes.Fluent/Controls/ProgressBar.xaml
@@ -125,13 +125,13 @@
-
+
-
+
-
+
@@ -140,13 +140,13 @@
-
+
-
+
-
+
@@ -155,13 +155,13 @@
-
+
-
+
-
+
@@ -170,28 +170,28 @@
-
+
-
+
-
+
diff --git a/src/Avalonia.Themes.Simple/Controls/ProgressBar.xaml b/src/Avalonia.Themes.Simple/Controls/ProgressBar.xaml
index 3eb158d5b6b..1f4bf006a08 100644
--- a/src/Avalonia.Themes.Simple/Controls/ProgressBar.xaml
+++ b/src/Avalonia.Themes.Simple/Controls/ProgressBar.xaml
@@ -93,7 +93,7 @@
-
+