using System.Globalization; using System.Windows.Data; using Color = System.Windows.Media.Color; using ShrlAlgoToolkit.RevitAddins.UI.Converters; using ShrlAlgoToolkit; using ShrlAlgoToolkit.RevitAddins; using ShrlAlgoToolkit.RevitAddins.UI; namespace ShrlAlgoToolkit.RevitAddins.Common.Converters; /// /// Autodesk颜色转Windows系统颜色 /// public class Rv2WinColorConverter : IValueConverter { public static Converters.Rv2WinColorConverter Instance { get; } = new Converters.Rv2WinColorConverter(); public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var color = (Autodesk.Revit.DB.Color)value; //if (Autodesk.Revit.DB.SelectedColor.InvalidColorValue) //{ //} 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; } }