我刚刚开始使用WPF应用程序。在这里,我需要从用户那里获得签名。我正在使用Inkcanvas
控件来实现此功能。
我很想知道在Inkcanvas控件中是否有一种方法可以单独裁剪描边区域和一些外边距。我不希望输出位图图像中的Inkcanvas容器的空白空间。如果签名太小,我想裁剪区域并将其拉伸到特定大小(300x200)。
答案 0 :(得分:2)
好的,首先你需要确定要裁剪的矩形("描边区域"),然后save it to an image。
InkCanvas具有Strokes
属性,它是墨迹笔划的集合,您可以通过调用Stroke.GetBound方法获取每个笔划的边界。然后你可以获得" stroked region"的Left属性,它是最左边界的Left属性。而且你也以同样的方式获得了Right,Top和Bottom。我希望你能理解我的解释。
将裁剪的图像大小调整为300x200应该非常简单,您可以在Stackoverflow上找到大量答案。
答案 1 :(得分:0)
我认为这对于Windows 10 Universal来说已经改变了。在某些方面,虽然不同,但可能会更容易一些。
使用InkCanvas,你有InkPresenter.StrokeContainer,你可以从那里获得BoundingRect属性,它将为你提供大量有关笔画边界矩形的细节(即x,y,width,height,left,right)等等......)
所以,这就是我所做的:
var bounds = myCanvas.InkPresenter.StrokeContainer.BoundingRect;
var left = bounds.Left;
var right = bounds.Right;
//and so on...
获得边界矩形数据后,很容易裁剪。
希望这有帮助!