Fix AddOnDecoratedBox theme Token Bindings bug

This commit is contained in:
chinboy
2025-03-03 12:09:38 +08:00
parent 7a8438fc5d
commit 324171bbf6
2 changed files with 48 additions and 31 deletions
@@ -87,11 +87,14 @@ internal class AddOnDecoratedBoxTheme : BaseControlTheme
BindingMode.Default,
ObjectConverters.IsNotNull);
leftAddOnContentPresenter.RegisterInNameScope(scope);
decoratedBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(leftAddOnContentPresenter, ContentPresenter.BackgroundProperty,
AddOnDecoratedBoxTokenKey.AddonBg));
decoratedBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(leftAddOnContentPresenter, ContentPresenter.BorderBrushProperty,
SharedTokenKey.ColorBorder));
RegisterTokenResourceBindings(decoratedBox, () =>
{
decoratedBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(leftAddOnContentPresenter, ContentPresenter.BackgroundProperty,
AddOnDecoratedBoxTokenKey.AddonBg));
decoratedBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(leftAddOnContentPresenter, ContentPresenter.BorderBrushProperty,
SharedTokenKey.ColorBorder));
});
Grid.SetColumn(leftAddOnContentPresenter, 0);
layout.Children.Add(leftAddOnContentPresenter);
@@ -130,11 +133,14 @@ internal class AddOnDecoratedBoxTheme : BaseControlTheme
AddOnDecoratedBox.RightAddOnProperty,
BindingMode.Default,
ObjectConverters.IsNotNull);
decoratedBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(rightAddOnContentPresenter, ContentPresenter.BackgroundProperty,
AddOnDecoratedBoxTokenKey.AddonBg));
decoratedBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(rightAddOnContentPresenter, ContentPresenter.BorderBrushProperty,
SharedTokenKey.ColorBorder));
RegisterTokenResourceBindings(decoratedBox, () =>
{
decoratedBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(rightAddOnContentPresenter, ContentPresenter.BackgroundProperty,
AddOnDecoratedBoxTokenKey.AddonBg));
decoratedBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(rightAddOnContentPresenter, ContentPresenter.BorderBrushProperty,
SharedTokenKey.ColorBorder));
});
rightAddOnContentPresenter.RegisterInNameScope(scope);
layout.Children.Add(rightAddOnContentPresenter);
@@ -105,9 +105,12 @@ internal class AddOnDecoratedInnerBoxTheme : BaseControlTheme
Name = LeftAddOnLayoutPart,
Orientation = Orientation.Horizontal
};
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(addLayout,
StackPanel.SpacingProperty,
SharedTokenKey.PaddingXXS));
RegisterTokenResourceBindings(addOnDecoratedInnerBox, () =>
{
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(addLayout,
StackPanel.SpacingProperty,
SharedTokenKey.PaddingXXS));
});
addLayout.RegisterInNameScope(scope);
var leftAddOnContentPresenter = new ContentPresenter
@@ -154,10 +157,15 @@ internal class AddOnDecoratedInnerBoxTheme : BaseControlTheme
Name = RightAddOnLayoutPart,
Orientation = Orientation.Horizontal
};
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(addLayout,
StackPanel.SpacingProperty,
SharedTokenKey.PaddingXXS));
addLayout.RegisterInNameScope(scope);
RegisterTokenResourceBindings(addOnDecoratedInnerBox, () =>
{
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(addLayout,
StackPanel.SpacingProperty,
SharedTokenKey.PaddingXXS));
});
BuildRightAddOnItems(addOnDecoratedInnerBox, addLayout, scope);
@@ -195,21 +203,24 @@ internal class AddOnDecoratedInnerBoxTheme : BaseControlTheme
Icon = closeIcon
};
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(clearButton,
IconButton.IconHeightProperty,
SharedTokenKey.IconSize));
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(clearButton,
IconButton.IconWidthProperty,
SharedTokenKey.IconSize));
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(closeIcon,
Icon.NormalFilledBrushProperty,
SharedTokenKey.ColorTextQuaternary));
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(closeIcon,
Icon.ActiveFilledBrushProperty,
SharedTokenKey.ColorTextTertiary));
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(closeIcon,
Icon.SelectedFilledBrushProperty,
SharedTokenKey.ColorText));
RegisterTokenResourceBindings(addOnDecoratedInnerBox, () =>
{
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(clearButton,
IconButton.IconHeightProperty,
SharedTokenKey.IconSize));
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(clearButton,
IconButton.IconWidthProperty,
SharedTokenKey.IconSize));
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(closeIcon,
Icon.NormalFilledBrushProperty,
SharedTokenKey.ColorTextQuaternary));
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(closeIcon,
Icon.ActiveFilledBrushProperty,
SharedTokenKey.ColorTextTertiary));
addOnDecoratedInnerBox.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(closeIcon,
Icon.SelectedFilledBrushProperty,
SharedTokenKey.ColorText));
});
clearButton.RegisterInNameScope(scope);
CreateTemplateParentBinding(clearButton, Visual.IsVisibleProperty,