Refactor ProgressBar

This commit is contained in:
chinboy
2025-03-04 08:18:44 +08:00
parent 460c58995c
commit baafebd4f0
4 changed files with 28 additions and 33 deletions
@@ -2,12 +2,10 @@
using AtomUI.IconPkg.AntDesign;
using AtomUI.MotionScene;
using AtomUI.Theme;
using AtomUI.Theme.Data;
using AtomUI.Theme.Styling;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Data.Converters;
@@ -1,6 +1,5 @@
using AtomUI.IconPkg;
using AtomUI.Theme;
using AtomUI.Theme.Data;
using AtomUI.Theme.Styling;
using Avalonia;
using Avalonia.Controls;
@@ -46,16 +45,6 @@ internal class PopupConfirmContainerTheme : BaseControlTheme
BuildInstanceStyles(popupConfirmContainer);
RegisterTokenResourceBindings(popupConfirmContainer, () =>
{
popupConfirmContainer.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(mainLayout,
Layoutable.MinWidthProperty,
PopupConfirmTokenKey.PopupMinWidth));
popupConfirmContainer.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(mainLayout,
Layoutable.MinHeightProperty,
PopupConfirmTokenKey.PopupMinHeight));
});
return mainLayout;
});
}
@@ -188,6 +177,11 @@ internal class PopupConfirmContainerTheme : BaseControlTheme
{
var commonStyle = new Style(selector => selector.Nesting());
var mainLayoutStyle = new Style(selector => selector.Nesting().Template().Name(MainLayoutPart));
mainLayoutStyle.Add(Layoutable.MinWidthProperty, PopupConfirmTokenKey.PopupMinWidth);
mainLayoutStyle.Add(Layoutable.MinHeightProperty, PopupConfirmTokenKey.PopupMinHeight);
commonStyle.Add(mainLayoutStyle);
var iconContentPresenter = new Style(selector => selector.Nesting().Template().Name(IconContentPart));
iconContentPresenter.Add(Layoutable.MarginProperty, PopupConfirmTokenKey.IconMargin);
commonStyle.Add(iconContentPresenter);
@@ -31,10 +31,6 @@ internal class AbstractCircleProgressTheme : AbstractProgressBarTheme
exceptionCompletedIcon.VerticalAlignment = VerticalAlignment.Center;
exceptionCompletedIcon.RegisterInNameScope(scope);
progressBar.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(exceptionCompletedIcon, Icon.NormalFilledBrushProperty,
SharedTokenKey.ColorError));
progressBar.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(exceptionCompletedIcon, Icon.DisabledFilledBrushProperty,
SharedTokenKey.ControlItemBgActiveDisabled));
var successCompletedIcon = AntDesignIconPackage.CheckOutlined();
successCompletedIcon.Name = SuccessCompletedIconPart;
@@ -42,10 +38,6 @@ internal class AbstractCircleProgressTheme : AbstractProgressBarTheme
successCompletedIcon.VerticalAlignment = VerticalAlignment.Center;
successCompletedIcon.RegisterInNameScope(scope);
progressBar.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(successCompletedIcon, Icon.NormalFilledBrushProperty,
SharedTokenKey.ColorSuccess));
progressBar.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(successCompletedIcon, Icon.DisabledFilledBrushProperty,
SharedTokenKey.ControlItemBgActiveDisabled));
container.Children.Add(exceptionCompletedIcon);
container.Children.Add(successCompletedIcon);
@@ -54,6 +46,17 @@ internal class AbstractCircleProgressTheme : AbstractProgressBarTheme
protected override void BuildStyles()
{
base.BuildStyles();
// 完成图标样式
var exceptionCompletedIconStyle = new Style(selector => selector.Nesting().Template().Name(ExceptionCompletedIconPart));
exceptionCompletedIconStyle.Add(Icon.NormalFilledBrushProperty, SharedTokenKey.ColorError);
exceptionCompletedIconStyle.Add(Icon.DisabledFilledBrushProperty, SharedTokenKey.ControlItemBgActiveDisabled);
Add(exceptionCompletedIconStyle);
var successCompletedIconStyle = new Style(selector => selector.Nesting().Template().Name(SuccessCompletedIconPart));
successCompletedIconStyle.Add(Icon.NormalFilledBrushProperty, SharedTokenKey.ColorSuccess);
successCompletedIconStyle.Add(Icon.DisabledFilledBrushProperty, SharedTokenKey.ControlItemBgActiveDisabled);
Add(successCompletedIconStyle);
var commonStyle = new Style(selector => selector.Nesting());
commonStyle.Add(AbstractCircleProgress.CircleMinimumTextFontSizeProperty,
@@ -30,24 +30,12 @@ internal class AbstractLineProgressTheme : AbstractProgressBarTheme
exceptionCompletedIcon.HorizontalAlignment = HorizontalAlignment.Left;
exceptionCompletedIcon.RegisterInNameScope(scope);
progressBar.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(exceptionCompletedIcon,
Icon.NormalFilledBrushProperty,
SharedTokenKey.ColorError));
progressBar.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(exceptionCompletedIcon,
Icon.DisabledFilledBrushProperty,
SharedTokenKey.ControlItemBgActiveDisabled));
var successCompletedIcon = AntDesignIconPackage.CheckCircleFilled();
successCompletedIcon.Name = SuccessCompletedIconPart;
successCompletedIcon.HorizontalAlignment = HorizontalAlignment.Left;
successCompletedIcon.RegisterInNameScope(scope);
progressBar.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(successCompletedIcon,
Icon.NormalFilledBrushProperty,
SharedTokenKey.ColorSuccess));
progressBar.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(successCompletedIcon,
Icon.DisabledFilledBrushProperty,
SharedTokenKey.ControlItemBgActiveDisabled));
container.Children.Add(exceptionCompletedIcon);
container.Children.Add(successCompletedIcon);
@@ -60,6 +48,18 @@ internal class AbstractLineProgressTheme : AbstractProgressBarTheme
commonStyle.Add(AbstractLineProgress.LineProgressPaddingProperty, ProgressBarTokenKey.LineProgressPadding);
commonStyle.Add(AbstractLineProgress.LineExtraInfoMarginProperty, ProgressBarTokenKey.LineExtraInfoMargin);
Add(commonStyle);
// 完成图标样式
var exceptionCompletedIconStyle = new Style(selector => selector.Nesting().Template().Name(ExceptionCompletedIconPart));
exceptionCompletedIconStyle.Add(Icon.NormalFilledBrushProperty, SharedTokenKey.ColorError);
exceptionCompletedIconStyle.Add(Icon.DisabledFilledBrushProperty, SharedTokenKey.ControlItemBgActiveDisabled);
Add(exceptionCompletedIconStyle);
var successCompletedIconStyle = new Style(selector => selector.Nesting().Template().Name(SuccessCompletedIconPart));
successCompletedIconStyle.Add(Icon.NormalFilledBrushProperty, SharedTokenKey.ColorSuccess);
successCompletedIconStyle.Add(Icon.DisabledFilledBrushProperty, SharedTokenKey.ControlItemBgActiveDisabled);
Add(successCompletedIconStyle);
BuildSizeTypeStyle();
}