为什么ActualWidth和ActualHeight从0,0开始?
我想将WPF路径添加到
InkCanvas
并使用选择来选择WPF路径。
所以,我使用这段代码。
System.Windows.Shapes.Path path = drawCanvas.Children[i] as System.Windows.Shapes.Path;
drawCanvas.Children.RemoveAt(i);
inkCanvas.Children.Add(path);
这是输出。我必须从0,0选择WPF路径,因为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);
没有找到相关结果
已邀请:
2 个回复
涸坍饺
上的UIElement.UpdateLayout方法更新FrameworkElement.ActualWidth属性和
。有关为何需要这些信息的背景信息,请参阅
链接。 编辑: 我误解了这个问题。并不是
和
为零,而是它们的值相对于
的
。这个问题的一个很好的解决方案是将
包裹在
中并使用
将其定位如下:
其行为如下: 这种方法的缺点是用户必须套索
,这是一个矩形,而不是任意形状。然而,它比套索对象和原点要好得多。
捻盒愧杯
是因为它支持选择),首先添加一个画布小组在0,0。画布的宽度和
由控制点的最大X和Y坐标确定。在此之后,元素将作为此画布的子项添加。 您还会看到,只要您看到带有元素的此类行为,该元素就不会支持布局属性,如水平/垂直对齐等。 我看到的唯一方法是从路径中的坐标手动找到
和
。 编辑:这是来自个人经验,而不是来自任何文档。