我正在研究wpf中的应用程序。我希望用户能够在图像或普通表面上添加一些绘图。我还想绘制一些基本形状,如直线,椭圆或矩形。我正在尝试使用inkcanvas,我可以做写意画,但我不能画像油漆中的形状。任何人都可以指导我并提供一些如何做的线索。请帮助我。任何输入将不胜感激。< / p>
答案 0 :(得分:2)
InkCanvas中有两种集合:
笔划,由StylusPoints组成,由DrawingAttributes定义。这就是墨水是用鼠标或手写笔绘制的。
另一个是Children,它可以包含FrameworkElements。例如,Ellipse是一个Shape是一个FrameworkElement。
尝试使用yourCanvas.Children.Add(ellipse),看看你如何去。当然没有理由因为你也想使用预定义的形状而回避InkCanvas。
值得指出的是,InkCanvas的小弟弟InkPresenter没有儿童财产。 Silverlight只有那个。
答案 1 :(得分:0)
WPF提供了一个Shape类,其中包含可以使用的方法绘制形状的预构建方法。不要使用墨迹,而是直接绘制到画布上。
答案 2 :(得分:0)
此处http://ciintelligence.blogspot.com/2011/07/silverlight-drawing-tool-silver-draw.html 你可以找到更好的控制,通过额外的功能改进了SilverDraw控件:
风险是: *您可以绘制基本形状,也可以使用手绘铅笔绘制。 *你可以擦除绘图。 *您可以撤消和重做绘图。 *可以在服务器端将绘图保存为jpeg。
答案 3 :(得分:0)
这是一个简单的实现:
public void drawCircleAp(Double EHeight, Double EWidth, InkCanvas surface)
{
Ellipse e1 = new Ellipse();
e1.Width = EWidth;
e1.Height = EHeight;
var brush = new SolidColorBrush();
brush.Color = Color.FromArgb(100, 0, 0, 0);
e1.Stroke = brush;
e1.StrokeThickness = 4;
surface.Children.Add(e1);
}