1

我正在 wpf 中开发类似绘画的应用程序。我希望用户能够在图像或普通表面上添加一些绘图。我还想绘制一些基本形状,如线条、椭圆或矩形。我正在尝试使用一个墨水画布,我可以在其中进行手绘,但我不能像在油漆中那样绘制形状。谁能指导我并提供一些有关如何做的线索。请帮助我。任何输入将不胜感激。

4

4 回答 4

3

InkCanvas 中有两种集合:

笔划,由 StylusPoints 组成,由 DrawingAttributes 定义。这就是 Ink 的本质,由鼠标或手写笔绘制。

另一个是Children,它可以包含FrameworkElements。例如,Ellipse 是一个 Shape 是一个 FrameworkElement。

尝试使用 yourCanvas.Children.Add(ellipse) 看看你的表现如何。当然没有理由仅仅因为您还想使用预定义的形状而回避 InkCanvas。

不过,值得指出的是,InkCanvas 的弟弟 InkPresenter 没有 Children 属性。而 Silverlight 只有那个。

于 2010-11-18T12:07:19.127 回答
0

在这里http://ciintelligence.blogspot.com/2011/07/silverlight-drawing-tool-silver-draw.html 您可以找到更好的控件,它改进了 SilverDraw 控件并具有额外的功能:

特点是: * 您可以绘制基本形状,也可以使用手绘铅笔绘制。*您可以擦除绘图。*您可以撤消和重做绘图。* 可以在服务器端将绘图保存为 jpeg。

于 2011-08-16T17:47:56.467 回答
0

WPF 提供了一个 Shape 类,其中包含可以用来绘制形状的预构建方法。不要使用 inkcanvas,而是直接在画布上绘制。

于 2010-08-24T18:19:14.870 回答
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);
}
于 2019-01-31T10:11:56.063 回答