diff --git a/src/Avalonia.Visuals/Vector.cs b/src/Avalonia.Visuals/Vector.cs
index 1b9f5c67d5..79c4202be4 100644
--- a/src/Avalonia.Visuals/Vector.cs
+++ b/src/Avalonia.Visuals/Vector.cs
@@ -82,6 +82,15 @@ namespace Avalonia
public static Vector operator *(Vector vector, double scale)
=> Multiply(vector, scale);
+ ///
+ /// Scales a vector.
+ ///
+ /// The vector.
+ /// The scaling factor.
+ /// The scaled vector.
+ public static Vector operator *(double scale, Vector vector)
+ => Multiply(vector, scale);
+
///
/// Scales a vector.
///
diff --git a/tests/Avalonia.Visuals.UnitTests/VectorTests.cs b/tests/Avalonia.Visuals.UnitTests/VectorTests.cs
index 0e72cd7c7f..f9a9e59436 100644
--- a/tests/Avalonia.Visuals.UnitTests/VectorTests.cs
+++ b/tests/Avalonia.Visuals.UnitTests/VectorTests.cs
@@ -105,5 +105,15 @@ namespace Avalonia.Visuals.UnitTests
Assert.Equal(expected, Vector.Multiply(vector, 2));
}
+
+ [Fact]
+ public void Scale_Vector_Should_Be_Commutative()
+ {
+ var vector = new Vector(10, 2);
+
+ var expected = vector * 2;
+
+ Assert.Equal(expected, 2 * vector);
+ }
}
}