Refactor Collapse

This commit is contained in:
chinboy
2025-03-03 18:41:37 +08:00
parent f2260f61f9
commit 4970b5f64e
2 changed files with 23 additions and 34 deletions
@@ -188,11 +188,12 @@ internal class CollapseItemTheme : BaseControlTheme
{
// ExpandIcon
var expandIconStyle =
var expandButtonStyle =
new Style(selector => selector.Nesting().Template().Name(ExpandButtonPart));
expandIconStyle.Add(IconButton.IconWidthProperty, SharedTokenKey.IconSizeSM);
expandIconStyle.Add(IconButton.IconHeightProperty, SharedTokenKey.IconSizeSM);
commonStyle.Add(expandIconStyle);
expandButtonStyle.Add(IconButton.IconWidthProperty, SharedTokenKey.IconSizeSM);
expandButtonStyle.Add(IconButton.IconHeightProperty, SharedTokenKey.IconSizeSM);
expandButtonStyle.Add(IconButton.DisabledIconColorProperty, SharedTokenKey.ColorTextDisabled);
commonStyle.Add(expandButtonStyle);
}
// 动画相关
@@ -205,13 +206,13 @@ internal class CollapseItemTheme : BaseControlTheme
}));
isMotionEnabledStyle.Add(decoratorStyle);
var expandIconStyle =
var expandButtonStyle =
new Style(selector => selector.Nesting().Template().Name(ExpandButtonPart));
expandIconStyle.Add(IconButton.TransitionsProperty, new SetterValueFactory<Transitions>(() => new Transitions()
expandButtonStyle.Add(IconButton.TransitionsProperty, new SetterValueFactory<Transitions>(() => new Transitions()
{
AnimationUtils.CreateTransition<TransformOperationsTransition>(Visual.RenderTransformProperty)
}));
isMotionEnabledStyle.Add(expandIconStyle);
isMotionEnabledStyle.Add(expandButtonStyle);
}
commonStyle.Add(isMotionEnabledStyle);
@@ -307,9 +308,9 @@ internal class CollapseItemTheme : BaseControlTheme
var iconTriggerHandleStyle =
new Style(selector => selector.Nesting()
.PropertyEquals(CollapseItem.TriggerTypeProperty, CollapseTriggerType.Icon));
var expandIconStyle = new Style(selector => selector.Nesting().Template().Name(ExpandButtonPart));
expandIconStyle.Add(InputElement.CursorProperty, new SetterValueFactory<Cursor>(() => new Cursor(StandardCursorType.Hand)));
iconTriggerHandleStyle.Add(expandIconStyle);
var expandButtonStyle = new Style(selector => selector.Nesting().Template().Name(ExpandButtonPart));
expandButtonStyle.Add(InputElement.CursorProperty, new SetterValueFactory<Cursor>(() => new Cursor(StandardCursorType.Hand)));
iconTriggerHandleStyle.Add(expandButtonStyle);
Add(iconTriggerHandleStyle);
}
+12 -24
View File
@@ -71,13 +71,6 @@ internal class ExpanderTheme : BaseControlTheme
motionActor.SetCurrentValue(Visual.IsVisibleProperty, false);
motionActor.Child = contentPresenter;
RegisterTokenResourceBindings(expander, () =>
{
expander.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(contentPresenter,
ContentPresenter.BorderBrushProperty,
SharedTokenKey.ColorBorder));
});
CreateTemplateParentBinding(contentPresenter, ContentPresenter.ContentProperty,
ContentControl.ContentProperty);
CreateTemplateParentBinding(contentPresenter, ContentPresenter.ContentTemplateProperty,
@@ -123,18 +116,8 @@ internal class ExpanderTheme : BaseControlTheme
{
Name = ExpandButtonPart,
VerticalAlignment = VerticalAlignment.Center,
HorizontalAlignment = HorizontalAlignment.Left
HorizontalAlignment = HorizontalAlignment.Left,
};
RegisterTokenResourceBindings(expander, () =>
{
expander.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(expandButton,
IconButton.IconWidthProperty,
SharedTokenKey.IconSize));
expander.AddTokenBindingDisposable(TokenResourceBinder.CreateTokenBinding(expandButton,
IconButton.IconHeightProperty,
SharedTokenKey.IconSize));
});
expandButton.RegisterInNameScope(scope);
CreateTemplateParentBinding(expandButton, IconButton.IconProperty, Expander.ExpandIconProperty);
@@ -227,11 +210,11 @@ internal class ExpanderTheme : BaseControlTheme
commonStyle.Add(headerPresenter);
// ExpandIcon
var expandIconStyle = new Style(selector =>
selector.Nesting().Template().Name(ExpandButtonPart).Descendant().OfType<Icon>());
expandIconStyle.Add(Layoutable.WidthProperty, SharedTokenKey.IconSizeSM);
expandIconStyle.Add(Layoutable.HeightProperty, SharedTokenKey.IconSizeSM);
commonStyle.Add(expandIconStyle);
var expandButtonStyle = new Style(selector => selector.Nesting().Template().Name(ExpandButtonPart));
expandButtonStyle.Add(IconButton.IconWidthProperty, SharedTokenKey.IconSizeSM);
expandButtonStyle.Add(IconButton.IconHeightProperty, SharedTokenKey.IconSizeSM);
expandButtonStyle.Add(IconButton.DisabledIconColorProperty, SharedTokenKey.ColorTextDisabled);
commonStyle.Add(expandButtonStyle);
{
// 打开关闭指示按钮的动画
@@ -239,7 +222,7 @@ internal class ExpanderTheme : BaseControlTheme
selector.Nesting().PropertyEquals(Expander.IsMotionEnabledProperty, true));
var expandIconButtonStyle = new Style(selector => selector.Nesting().Template().Name(ExpandButtonPart));
expandIconButtonStyle.Add(IconButton.TransitionsProperty, new SetterValueFactory<Transitions>(() =>
new Transitions()
new Transitions
{
AnimationUtils.CreateTransition<TransformOperationsTransition>(Visual.RenderTransformProperty)
}));
@@ -418,6 +401,11 @@ internal class ExpanderTheme : BaseControlTheme
private void BuildSizeTypeStyle()
{
{
var contentPresenterStyle = new Style(selector => selector.Nesting().Template().Name(ContentPresenterPart));
contentPresenterStyle.Add(ContentPresenter.BorderBrushProperty, SharedTokenKey.ColorBorder);
Add(contentPresenterStyle);
}
var largeSizeStyle = new Style(selector =>
selector.Nesting().PropertyEquals(Expander.SizeTypeProperty, SizeType.Large));
{