diff --git a/.gitignore b/.gitignore index 1d9d464..4845444 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,9 @@ ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore +# Other Projects +Other Projects/ + # History Versions History Versions/ diff --git a/Ink Canvas/Helpers/MultiTouchInput.cs b/Ink Canvas/Helpers/MultiTouchInput.cs new file mode 100644 index 0000000..1badd92 --- /dev/null +++ b/Ink Canvas/Helpers/MultiTouchInput.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Media; + +namespace Ink_Canvas.Helpers +{ + public class VisualCanvas : FrameworkElement + { + protected override Visual GetVisualChild(int index) + { + return Visual; + } + + protected override int VisualChildrenCount => 1; + + public VisualCanvas(DrawingVisual visual) + { + Visual = visual; + AddVisualChild(visual); + } + + public DrawingVisual Visual { get; } + } + + /// + /// 用于显示笔迹的类 + /// + public class StrokeVisual : DrawingVisual + { + /// + /// 创建显示笔迹的类 + /// + public StrokeVisual() : this(new DrawingAttributes() + { + Color = Colors.Red, + //FitToCurve = true, + Width = 3, + Height = 3 + }) + { + } + + /// + /// 创建显示笔迹的类 + /// + /// + public StrokeVisual(DrawingAttributes drawingAttributes) + { + _drawingAttributes = drawingAttributes; + } + + /// + /// 设置或获取显示的笔迹 + /// + public Stroke Stroke { set; get; } + + /// + /// 在笔迹中添加点 + /// + /// + public void Add(StylusPoint point) + { + if (Stroke == null) + { + var collection = new StylusPointCollection { point }; + Stroke = new Stroke(collection) { DrawingAttributes = _drawingAttributes }; + } + else + { + Stroke.StylusPoints.Add(point); + } + } + + /// + /// 重新画出笔迹 + /// + public void Redraw() + { + using (var dc = RenderOpen()) + { + Stroke.Draw(dc); + } + } + + private readonly DrawingAttributes _drawingAttributes; + } +} diff --git a/Ink Canvas/Ink Canvas.csproj b/Ink Canvas/Ink Canvas.csproj index 6eddc5e..737de98 100644 --- a/Ink Canvas/Ink Canvas.csproj +++ b/Ink Canvas/Ink Canvas.csproj @@ -128,6 +128,7 @@ + NamesInputWindow.xaml diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index ab0354f..c1daef4 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -29,7 +29,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Visibility="Collapsed">