我想添加WPF路径InkCanvas
并使用选择来选择WPF路径.所以,我使用这段代码.
System.Windows.Shapes.Path path = drawCanvas.Children[i] as System.Windows.Shapes.Path;
drawCanvas.Children.RemoveAt(i);
inkCanvas.Children.Add(path);
Run Code Online (Sandbox Code Playgroud)
这是输出.我必须从0,0中选择WPF Path,因为Actualwidth
它ActualHeight
从0,0开始.
如何选择绝对WPF路径?
谢谢
编辑:
现在,我可以使用此代码绝对选择它.
System.Windows.Shapes.Path path = drawCanvas.Children[i] as System.Windows.Shapes.Path;
drawCanvas.Children.RemoveAt(i);
path.Margin = new Thickness(-getMinX(path), -getMinY(path), 0, 0);
containPath.Children.Add(path);
containPath.Width = getMaxX(path) - getMinX(path);
containPath.Height = getMaxY(path) - getMinY(path);
containPath.Margin = new Thickness(getMinX(path), getMinY(path), 0, 0);
inkCanvas.Children.Add(containPath);
Run Code Online (Sandbox Code Playgroud) 我想要由LineSegment组成的PathGeometry.
所以,我使用第一个代码,但它是错误的.
PathGeometry temp = (PathGeometry)Geometry.Parse(
"<PathGeometry.Figures>" +
"<PathFigure StartPoint=\"193.5,283.5\" IsClosed=\"True\">" +
"<PathFigure.Segments>" +
"<LineSegment Point=\"418.5,283.5\" />" +
"<LineSegment Point=\"418.5,508.5\" />" +
"<LineSegment Point=\"193.5,508.5\" />" +
"<LineSegment Point=\"193.5,283.5\" />" +
"</PathFigure.Segments>" +
"</PathFigure>" +
"</PathGeometry.Figures>");
Run Code Online (Sandbox Code Playgroud)
如果我使用第二个代码,它不是错误,但它不包含LineSegment.结果将是PolyLineSegment,但我想要LineSegment.
PathGeometry temp = (PathGeometry)Geometry.Parse(
"M29,329L30,331L31,334L33,336L34,338L36,341L38,343L39,345L41,348L44,352L46,353L47,355L48,356L49,357L49,357L50,358L50,358L51,357L50,356L51,354L51,350L53,342L54,334L58,320L60,315L61,311L63,308L63,306L64,304L65,303L65,302L66,301L66,301L66,301L66,301L66,301L66,301L66,301");
Run Code Online (Sandbox Code Playgroud)
如何将XAML PathGeometry转换为WPF PathGeometry?
谢谢