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); + } } }