feat: rename item mode to position

This commit is contained in:
rabbitism
2024-01-08 23:37:20 +08:00
parent 22b5dafb8e
commit 21a3eba728
5 changed files with 28 additions and 28 deletions

View File

@@ -153,7 +153,7 @@
<u:TimelineItem
Content="Step 2"
Header="Start"
Mode="Right"
Position="Right"
Type="Ongoing"
Time="2024-01-04 22:32:58"/>
<u:TimelineItem
@@ -164,7 +164,7 @@
<u:TimelineItem
Content="Step 4"
Header="Finished"
Mode="Right"
Position="Right"
Type="Success"
Time="2024-01-05 00:27:44"/>
</u:Timeline>

View File

@@ -59,27 +59,27 @@
<u:TimelineItem
Content="Step 1"
Header="第一步"
Mode="Left"
Position="Left"
Type="Default" />
<u:TimelineItem
Content="Step 2"
Header="第二步"
Mode="Right"
Position="Right"
Type="Success" />
<u:TimelineItem
Content="Step 3"
Header="第三步"
Mode="Separate"
Position="Separate"
Type="Warning" />
<u:TimelineItem
Content="Step 4"
Header="第四步"
Mode="Separate"
Position="Separate"
Type="Ongoing" />
<u:TimelineItem
Content="Step 5"
Header="第五步"
Mode="Separate"
Position="Separate"
TimeFormat="yyyy-MM-dd"
Type="Error" />
</u:Timeline>

View File

@@ -176,21 +176,21 @@ public class Timeline: ItemsControl
{
foreach (var item in items)
{
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Left);
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Left);
}
}
else if (Mode == TimelineDisplayMode.Right)
{
foreach (var item in items)
{
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Right);
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Right);
}
}
else if (Mode == TimelineDisplayMode.Center)
{
foreach (var item in items)
{
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Separate);
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Separate);
}
}
else if (Mode == TimelineDisplayMode.Alternate)
@@ -200,11 +200,11 @@ public class Timeline: ItemsControl
{
if (left)
{
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Left);
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Left);
}
else
{
SetIfUnset(item, TimelineItem.ModeProperty, TimelineItemDisplayMode.Right);
SetIfUnset(item, TimelineItem.PositionProperty, TimelineItemPosition.Right);
}
left = !left;
}

View File

@@ -14,7 +14,7 @@ public enum TimelineDisplayMode
/// Right means line is placed right to TimelineItem content.
/// Separate means line is placed between TimelineItem content and time.
/// </summary>
public enum TimelineItemDisplayMode
public enum TimelineItemPosition
{
Left,
Right,

View File

@@ -62,13 +62,13 @@ public class TimelineItem: HeaderedContentControl
set => SetValue(TypeProperty, value);
}
public static readonly StyledProperty<TimelineItemDisplayMode> ModeProperty = AvaloniaProperty.Register<TimelineItem, TimelineItemDisplayMode>(
nameof(Mode), defaultValue: TimelineItemDisplayMode.Right);
public static readonly StyledProperty<TimelineItemPosition> PositionProperty = AvaloniaProperty.Register<TimelineItem, TimelineItemPosition>(
nameof(Position), defaultValue: TimelineItemPosition.Right);
public TimelineItemDisplayMode Mode
public TimelineItemPosition Position
{
get => GetValue(ModeProperty);
set => SetValue(ModeProperty, value);
get => GetValue(PositionProperty);
set => SetValue(PositionProperty, value);
}
public static readonly DirectProperty<TimelineItem, double> LeftWidthProperty = AvaloniaProperty.RegisterDirect<TimelineItem, double>(
@@ -119,20 +119,20 @@ public class TimelineItem: HeaderedContentControl
static TimelineItem()
{
IconProperty.Changed.AddClassHandler<TimelineItem, object?>((item, args) => { item.OnIconChanged(args); });
ModeProperty.Changed.AddClassHandler<TimelineItem, TimelineItemDisplayMode>((item, args) => { item.OnModeChanged(args); });
PositionProperty.Changed.AddClassHandler<TimelineItem, TimelineItemPosition>((item, args) => { item.OnModeChanged(args); });
AffectsMeasure<TimelineItem>(LeftWidthProperty, RightWidthProperty, IconWidthProperty);
}
private void OnModeChanged(AvaloniaPropertyChangedEventArgs<TimelineItemDisplayMode> args)
private void OnModeChanged(AvaloniaPropertyChangedEventArgs<TimelineItemPosition> args)
{
SetMode(args.NewValue.Value);
}
private void SetMode(TimelineItemDisplayMode mode)
private void SetMode(TimelineItemPosition mode)
{
PseudoClasses.Set(PC_AllLeft, mode == TimelineItemDisplayMode.Left);
PseudoClasses.Set(PC_AllRight, mode == TimelineItemDisplayMode.Right);
PseudoClasses.Set(PC_Separate, mode == TimelineItemDisplayMode.Separate);
PseudoClasses.Set(PC_AllLeft, mode == TimelineItemPosition.Left);
PseudoClasses.Set(PC_AllRight, mode == TimelineItemPosition.Right);
PseudoClasses.Set(PC_Separate, mode == TimelineItemPosition.Separate);
}
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
@@ -144,7 +144,7 @@ public class TimelineItem: HeaderedContentControl
_contentPresenter = e.NameScope.Find<ContentPresenter>(PART_Content);
_timePresenter = e.NameScope.Find<TextBlock>(PART_Time);
PseudoClasses.Set(PC_EmptyIcon, Icon is null);
SetMode(Mode);
SetMode(Position);
}
private void OnIconChanged(AvaloniaPropertyChangedEventArgs<object?> args)
@@ -166,17 +166,17 @@ public class TimelineItem: HeaderedContentControl
double content = _contentPresenter?.DesiredSize.Width ?? 0;
double time = _timePresenter?.DesiredSize.Width ?? 0;
double max = Math.Max(header, content);
if (Mode == TimelineItemDisplayMode.Left)
if (Position == TimelineItemPosition.Left)
{
max = Math.Max(max, time);
return (0, icon, max);
}
if (Mode == TimelineItemDisplayMode.Right)
if (Position == TimelineItemPosition.Right)
{
max = Math.Max(max, time);
return (max , icon, 0);
}
if (Mode == TimelineItemDisplayMode.Separate)
if (Position == TimelineItemPosition.Separate)
{
return (time, icon, max);
}