using System.Globalization; using System.Windows.Data; using Color = System.Windows.Media.Color; namespace ShrlAlgoToolkit.RevitAddins.Common.Converters; /// /// Autodesk颜色转Windows系统颜色 /// public class Rv2WinColorConverter : IValueConverter { public static readonly Rv2WinColorConverter Instance = new(); public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var color = (Autodesk.Revit.DB.Color)value; if (color is { IsValid: true }) { var rgb = Color.FromRgb(color.Red, color.Green, color.Blue); return rgb; } return new Color(); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return value is Color rgb ? new Autodesk.Revit.DB.Color(rgb.R, rgb.G, rgb.B) : (object)Autodesk.Revit.DB.Color.InvalidColorValue; } }