Browse Source

improve points parsing in PointsListTypeConverter - fixes #3813

pull/3814/head
Andrey Kunchev 7 years ago
parent
commit
28448b1041
  1. 10
      src/Markup/Avalonia.Markup.Xaml/Converters/PointsListTypeConverter.cs

10
src/Markup/Avalonia.Markup.Xaml/Converters/PointsListTypeConverter.cs

@ -4,7 +4,7 @@ using System.Globalization;
namespace Avalonia.Markup.Xaml.Converters namespace Avalonia.Markup.Xaml.Converters
{ {
using System.ComponentModel; using System.ComponentModel;
public class PointsListTypeConverter : TypeConverter public class PointsListTypeConverter : TypeConverter
{ {
@ -16,11 +16,11 @@ namespace Avalonia.Markup.Xaml.Converters
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{ {
string strValue = (string)value; string strValue = (string)value;
string[] pointStrs = strValue.Split(new[] { ' ', '\t', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); string[] pointStrs = strValue.Split(new[] { ' ', '\t', '\r', '\n', ',' }, StringSplitOptions.RemoveEmptyEntries);
var result = new List<Point>(pointStrs.Length); var result = new List<Point>(pointStrs.Length / 2);
foreach (var pointStr in pointStrs) for (int i = 0; i < pointStrs.Length; i += 2)
{ {
result.Add(Point.Parse(pointStr)); result.Add(Point.Parse($"{pointStrs[i]} {pointStrs[i + 1]}"));
} }
return result; return result;

Loading…
Cancel
Save