diff --git a/src/Avalonia.Visuals/Matrix.cs b/src/Avalonia.Visuals/Matrix.cs
index 92b7dae9040..d05dbac5744 100644
--- a/src/Avalonia.Visuals/Matrix.cs
+++ b/src/Avalonia.Visuals/Matrix.cs
@@ -306,7 +306,7 @@ public Matrix Invert()
///
/// Parses a string.
///
- /// The string.
+ /// Six comma-delimited double values (m11, m12, m21, m22, offsetX, offsetY) that describe the new
/// The .
public static Matrix Parse(string s)
{
diff --git a/src/Avalonia.Visuals/Media/Transform.cs b/src/Avalonia.Visuals/Media/Transform.cs
index 7a70657ce00..8253d11ff1b 100644
--- a/src/Avalonia.Visuals/Media/Transform.cs
+++ b/src/Avalonia.Visuals/Media/Transform.cs
@@ -28,6 +28,16 @@ static Transform()
///
public abstract Matrix Value { get; }
+ ///
+ /// Parses a string.
+ ///
+ /// Six comma-delimited double values that describe the new . For details check
+ /// The .
+ public static Transform Parse(string s)
+ {
+ return new MatrixTransform(Matrix.Parse(s));
+ }
+
///
/// Raises the event.
///
@@ -35,5 +45,14 @@ protected void RaiseChanged()
{
Changed?.Invoke(this, EventArgs.Empty);
}
+
+ ///
+ /// Returns a String representing this transform matrix instance.
+ ///
+ /// The string representation.
+ public override string ToString()
+ {
+ return Value.ToString();
+ }
}
}
diff --git a/src/Avalonia.Visuals/Point.cs b/src/Avalonia.Visuals/Point.cs
index d92f8b0fc4c..27ac7a30263 100644
--- a/src/Avalonia.Visuals/Point.cs
+++ b/src/Avalonia.Visuals/Point.cs
@@ -175,7 +175,7 @@ public static implicit operator Vector(Point p)
/// Parses a string.
///
/// The string.
- /// The .
+ /// The .
public static Point Parse(string s)
{
using (var tokenizer = new StringTokenizer(s, CultureInfo.InvariantCulture, exceptionMessage: "Invalid Point."))
diff --git a/src/Avalonia.Visuals/RelativePoint.cs b/src/Avalonia.Visuals/RelativePoint.cs
index 2e8fb16bc10..ebd0ba93514 100644
--- a/src/Avalonia.Visuals/RelativePoint.cs
+++ b/src/Avalonia.Visuals/RelativePoint.cs
@@ -177,5 +177,16 @@ public static RelativePoint Parse(string s)
unit);
}
}
+
+ ///
+ /// Returns a String representing this RelativePoint instance.
+ ///
+ /// The string representation.
+ public override string ToString()
+ {
+ return _unit == RelativeUnit.Absolute ?
+ _point.ToString() :
+ string.Format(CultureInfo.InvariantCulture, "{0}%, {1}%", _point.X * 100, _point.Y * 100);
+ }
}
}
diff --git a/src/Avalonia.Visuals/Vector.cs b/src/Avalonia.Visuals/Vector.cs
index 576d2daaaae..d99fbe8e65e 100644
--- a/src/Avalonia.Visuals/Vector.cs
+++ b/src/Avalonia.Visuals/Vector.cs
@@ -4,6 +4,7 @@
using System;
using System.Globalization;
using Avalonia.Animation.Animators;
+using Avalonia.Utilities;
using JetBrains.Annotations;
namespace Avalonia
@@ -85,6 +86,22 @@ public static explicit operator Point(Vector a)
public static Vector operator /(Vector vector, double scale)
=> Divide(vector, scale);
+ ///
+ /// Parses a string.
+ ///
+ /// The string.
+ /// The .
+ public static Vector Parse(string s)
+ {
+ using (var tokenizer = new StringTokenizer(s, CultureInfo.InvariantCulture, exceptionMessage: "Invalid Vector."))
+ {
+ return new Vector(
+ tokenizer.ReadDouble(),
+ tokenizer.ReadDouble()
+ );
+ }
+ }
+
///
/// Length of the vector
///
@@ -166,9 +183,9 @@ public override int GetHashCode()
}
///
- /// Returns the string representation of the point.
+ /// Returns the string representation of the vector.
///
- /// The string representation of the point.
+ /// The string representation of the vector.
public override string ToString()
{
return string.Format(CultureInfo.InvariantCulture, "{0}, {1}", _x, _y);