Files
WCS/Plugins/Wcs/Plugin.Cowain.Wcs/Converters/StationStatusBrushConverter.cs
2026-03-02 09:13:29 +08:00

44 lines
1.4 KiB
C#

using Avalonia.Data.Converters;
using Avalonia.Media;
using Plugin.Cowain.Wcs.Models.Enum;
using System;
using System.Globalization;
namespace Plugin.Cowain.Wcs.Converters;
public class StationStatusBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
StationStateEnum state = StationStateEnum.UnKnown;
if (value is string str && Enum.TryParse<StationStateEnum>(str, out var parsed))
{
state = parsed;
}
else if (value is int i)
{
state = (StationStateEnum)i;
}
else if (value is StationStateEnum e)
{
state = e;
}
// 根据状态返回不同Brush
return state switch
{
StationStateEnum.RequestPick => Brushes.Orange,
StationStateEnum.Picking => Brushes.Yellow,
StationStateEnum.PickFinished => Brushes.LightGreen,
StationStateEnum.RequestPlace => Brushes.OrangeRed,
StationStateEnum.Placing => Brushes.Yellow,
StationStateEnum.PlaceFinished => Brushes.LightGreen,
StationStateEnum.UnKnown or _ => Brushes.Gray,
};
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}