感谢您对我的帮助!我想使用代码更改路径(SVG)的整个数据,以便可以将路径的位置移至特定方向。例如,史蒂夫(Steve)使用以下代码帮助我在所有(x,y)对中的x上加1,以将路径(SVG)向正确的方向移动:Steve's code(但第一个x(311)不会)变化。有一些错误)
var data = @"M311.97458,250.39993L213.97533,248.39996 222.37435,216.7998C222.37435,216.7998 ......589.5753,173.99994,593.1753,179.9999......334.3039,253.21373 311.97458,250.39993 z"; '
var replaced = Regex.Replace(data, "((?=[^, ])\\d+\\.\\d+),", (match) => (double.Parse(match.Groups[1].Value) + 1).ToString()+",")
// output: M311.97458,251.39993L214.97533,249.39996 223.37435,217.7998C223.37435,217.7998 ......590.5753,174.99994,594.1753,180.9999......335.3039,254.21373 312.97458,251.39993 z
获得输出后,我尝试将其放入数据中。我写了a.SetValue(Path.DataProperty,replace)
和a.SetValue(Path.DataProperty,Geometry.Parse(replace))
,但是它们都不起作用。结果显示
未处理的错误:System.FormatException:输入字符串的格式不正确。
如何将输出更改为路径(SVG)数据的正确格式?还是应该更改以前的代码?
谢谢!
答案 0 :(得分:0)
WPF中的路径使用简单的几何。 Here解释了有关该语法的所有内容。如果您阅读并理解了该文章,将很容易遍历自己的Path并以所需的方式对其进行修复。
主要命令:
移动命令for i in request.form:
answered=request.form[i]
...
-或-M startPoint
行命令m startPoint
-或-L endPoint
水平线命令l endPoint
-或-H x
垂直线命令h x
-或-V y
三次贝塞尔曲线命令v y
-或-C controlPoint1 controlPoint2 endPoint
二次贝塞尔曲线命令c controlPoint1 controlPoint2 endPoint
-或-Q controlPoint endPoint
椭圆弧命令q controlPoint endPoint
-或-A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint