我想在Code中生成一个WPF Path对象.
在XAML中,我可以这样做:
<Path Data="M 100,200 C 100,25 400,350 400,175 H 280">
Run Code Online (Sandbox Code Playgroud)
我怎样才能在Code中做同样的事情?
Path path = new Path();
Path.Data = "foo"; //This won't accept a string as path data.
Run Code Online (Sandbox Code Playgroud)
是否有可用将PathData转换为PathGeometry或类似字符串的类/方法?
当然不知何故XAML被解析并且数据字符串被转换了?
小智 132
var path = new Path();
path.Data = Geometry.Parse("M 100,200 C 100,25 400,350 400,175 H 280");
Run Code Online (Sandbox Code Playgroud)
Path.Data的类型为Geometry.使用Reflector JustDecompile (eff Red Gate),我查看了Geometry的定义,因为它的TypeConverterAttribute(xaml序列化程序用来将类型的值转换string为Geometry).这指向了GeometryConverter.检查实现,我看到它用于Geometry.Parse将路径的字符串值转换为Geometry实例.
dbv*_*ega 20
您可以使用绑定机制.
var b = new Binding
{
Source = "M 100,200 C 100,25 400,350 400,175 H 280"
};
BindingOperations.SetBinding(path, Path.DataProperty, b);
Run Code Online (Sandbox Code Playgroud)
我希望它对你有所帮助.