Beispiel #1
0
        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;
                }
            }
        }
Beispiel #2
0
        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]);
        }
Beispiel #3
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);
            }
        }
Beispiel #4
0
            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);
            }
Beispiel #5
0
            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();
            }
Beispiel #6
0
 public void CleanStrokeTipBuilder(StylusPointCollectionInfo stylusPointCollectionInfo)
 {
     this.RenderPackets(stylusPointCollectionInfo);
 }