public void Move(int stylusDeviceId, int timestamp, StylusPointCollection stylusPointCollection) { if (IsMouse(stylusDeviceId)) { MouseMove(timestamp, stylusPointCollection); return; } StrokeInfo strokeInfo; if (_strokeInfoList.TryGetValue(stylusDeviceId, out strokeInfo)) { if (strokeInfo == null) { throw new ArgumentNullException("在移动过程拿到的 StrokeInfo 是空"); } if (strokeInfo.IsTimestampAfter(timestamp)) { stylusPointCollectionInfo = new StylusPointCollectionInfo(strokeInfo, stylusPointCollection, timestamp); this.Run(strokeInfo, delegate { OnMove(stylusPointCollectionInfo); }); strokeInfo.LastTime = timestamp; } } }
public void Down(int stylusDeviceId, int timestamp, StylusPointCollection stylusPointCollection) { if (IsMouse(stylusDeviceId)) { this.MouseDown(timestamp, stylusPointCollection); return; } StrokeInfo strokeInfo; if (!this._strokeInfoList.TryGetValue(stylusDeviceId, out strokeInfo)) { strokeInfo = new StrokeInfo(stylusDeviceId, _drawingAttributes, _fillSolidColorBrush, timestamp, new InkRenderInfo(this, this.GetContainerVisual(stylusDeviceId))); this._strokeInfoList[stylusDeviceId] = strokeInfo; StylusPointCollectionInfo stylusPointCollectionInfo = new StylusPointCollectionInfo(strokeInfo, stylusPointCollection, timestamp); this.Run(strokeInfo, delegate { OnDown(stylusPointCollectionInfo); }); return; } if (strokeInfo.SeenUp) { return; } Console.WriteLine(string.Format("在按下的时候找到两个 stylusDeviceId {0} 当前一共有 {1} 个点按下", stylusDeviceId, this._strokeInfoList.Count), new string[0]); }
private void MouseMove(int timestamp, StylusPointCollection stylusPointCollection) { StrokeInfo mouseStrokeInfo = MouseStrokeInfo; if (mouseStrokeInfo != null) { stylusPointCollection = this.SetStylusPointDescription(stylusPointCollection); StylusPointCollectionInfo stylusPointCollectionInfo = new StylusPointCollectionInfo(mouseStrokeInfo, stylusPointCollection, timestamp); this.OnMove(stylusPointCollectionInfo); } }
public void InitStrokeTipBuilder(StylusPointCollectionInfo stylusPointCollectionInfo) { StrokeInfo strokeInfo = stylusPointCollectionInfo.StrokeInfo; InkRenderInfo inkRenderInfo = strokeInfo.InkRenderInfo; InkStrokeTipBuilder inkStrokeTipBuilder = inkRenderInfo.InkStrokeTipBuilderBuilder.GetInkStrokeTipBuilder(); inkStrokeTipBuilder.Brush = strokeInfo.FillSolidColorBrush; inkStrokeTipBuilder.DrawingAttributes = strokeInfo.DrawingAttributes; inkRenderInfo.StrokeTipBuilder = inkStrokeTipBuilder; inkRenderInfo.ContainerVisual.Children.Add(inkRenderInfo.StrokeTipBuilder.CreateStroke()); this.RenderPackets(stylusPointCollectionInfo); }
public void RenderPackets(StylusPointCollectionInfo stylusPointCollectionInfo) { StrokeInfo strokeInfo = stylusPointCollectionInfo.StrokeInfo; InkRenderInfo inkRenderInfo = strokeInfo.InkRenderInfo; foreach (var stylusPoint in stylusPointCollectionInfo.StylusPlugInCollection) { StylusPointCollection stylusPointCollection = inkRenderInfo.StrokeTipBuilder.AddPoint(stylusPoint); if (stylusPointCollection != null) { StrokeVisual strokeVisual = new StrokeVisual(strokeInfo.FillSolidColorBrush, strokeInfo.DrawingAttributes, stylusPointCollection); inkRenderInfo.ContainerVisual.Children.Add(strokeVisual); inkRenderInfo.StrokeVisualList.AddLast(strokeVisual); strokeVisual.Redraw(); } } // inkRenderInfo.StrokeTipBuilder.Redraw(); }
public void CleanStrokeTipBuilder(StylusPointCollectionInfo stylusPointCollectionInfo) { this.RenderPackets(stylusPointCollectionInfo); }