C# 为什么将字符串路径转换为几何体并再次返回会引发FormatException?

C# 为什么将字符串路径转换为几何体并再次返回会引发FormatException?,c#,wpf,geometry,type-conversion,pathgeometry,C#,Wpf,Geometry,Type Conversion,Pathgeometry,我需要将字符串路径转换为a,然后再转换回来 第一步是转换我的路径:“M 100 100 L 300 100 L 200 300 z”。为此,我使用从指定字符串创建新几何体实例的方法: var geometry = Geometry.Parse("M 100 100 L 300 100 L 200 300 z"); 我需要在数据结构中存储此几何体的路径,该路径是我使用几何体获得的。ToString方法: string str = geometry.ToString(); // And this

我需要将字符串路径转换为a,然后再转换回来

第一步是转换我的路径:
“M 100 100 L 300 100 L 200 300 z”
。为此,我使用从指定字符串创建新几何体实例的方法:

var geometry = Geometry.Parse("M 100 100 L 300 100 L 200 300 z");
我需要在数据结构中存储此几何体的路径,该路径是我使用
几何体获得的。ToString
方法:

string str = geometry.ToString();
// And this is my str: "M100;100L300;100 200;300z"
// Here i get a FormatException
var geometry2 = Geometry.Parse(str);
现在我想使用存储的路径重新创建相同的几何体,因此我再次使用
Grometry.Parse
方法:

string str = geometry.ToString();
// And this is my str: "M100;100L300;100 200;300z"
// Here i get a FormatException
var geometry2 = Geometry.Parse(str);
问题是我得到了一个
格式异常


怎么可能呢?如何修复它?

我想这是您机器的
区域性
的问题,因为它被设置为
en-Us
以外的其他
区域性。因为在本例中,
ToString()
返回分号分隔的值时,路径值应以逗号/空格分隔,以便进行分析。尝试使用
CultureInfo.InvariantCulture
,同时将
几何体
转换为
字符串
。它将修复异常

string str = geometry.ToString(CultureInfo.InvariantCulture);

我想这是您机器的
区域性
的问题,因为它设置为
en-Us
以外的其他
区域性。因为在本例中,
ToString()
返回分号分隔的值时,路径值应以逗号/空格分隔,以便进行分析。尝试使用
CultureInfo.InvariantCulture
,同时将
几何体
转换为
字符串
。它将修复异常

string str = geometry.ToString(CultureInfo.InvariantCulture);
将“M100;100L300;100 200;300z”转换为“M 100 100 L 300 100 L 200 300 z”。请删除分号并进行尝试。:)将“M100;100L300;100 200;300z”转换为“M 100 100 L 300 100 L 200 300 z”。请删除分号并进行尝试。:)