diff --git a/src/Avalonia.Controls/Converters/EnumValueEqualsConverter.cs b/src/Avalonia.Controls/Converters/EnumValueEqualsConverter.cs
new file mode 100644
index 0000000000..1a33a82ca4
--- /dev/null
+++ b/src/Avalonia.Controls/Converters/EnumValueEqualsConverter.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Globalization;
+using Avalonia.Data.Converters;
+
+namespace Avalonia.Controls.Converters
+{
+ ///
+ /// Converter that checks if an enum value is equal to the given parameter enum value.
+ ///
+ public class EnumValueEqualsConverter : IValueConverter
+ {
+ ///
+ public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
+ {
+ // Note: Unlike string comparisons, null/empty is not supported
+ // Both 'value' and 'parameter' must exist and if both are missing they are not considered equal
+ if (value != null &&
+ parameter != null)
+ {
+ Type type = value.GetType();
+
+ if (type.IsEnum)
+ {
+ var valueStr = value?.ToString();
+ var paramStr = parameter?.ToString();
+
+ if (string.Equals(valueStr, paramStr, StringComparison.OrdinalIgnoreCase))
+ {
+ return true;
+ }
+ }
+
+ /*
+ // TODO: When .net Standard 2.0 is no longer supported the code can be changed to below
+ // This is a little more type safe
+ if (type.IsEnum &&
+ Enum.TryParse(type, value?.ToString(), true, out object? valueEnum) &&
+ Enum.TryParse(type, parameter?.ToString(), true, out object? paramEnum))
+ {
+ return valueEnum == paramEnum;
+ }
+ */
+ }
+
+ return false;
+ }
+
+ ///
+ public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
+ {
+ throw new System.NotImplementedException();
+ }
+ }
+}
diff --git a/src/Avalonia.Controls/Converters/MarginMultiplierConverter.cs b/src/Avalonia.Controls/Converters/MarginMultiplierConverter.cs
index b0c30ea11f..7931b63d8e 100644
--- a/src/Avalonia.Controls/Converters/MarginMultiplierConverter.cs
+++ b/src/Avalonia.Controls/Converters/MarginMultiplierConverter.cs
@@ -35,7 +35,6 @@ namespace Avalonia.Controls.Converters
Bottom ? Indent * thicknessDepth.Bottom : 0);
}
return new Thickness(0);
-
}
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)