コード例 #1
0
ファイル: Whiteboard.xaml.cs プロジェクト: zdchupka/HMCT
        private void Canvas_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.RightButton == MouseButtonState.Pressed)
            {
                return;
            }

            if (e.LeftButton == MouseButtonState.Pressed)
            {
                if (!CanDraw())
                {
                    if (_currentEntry != null && Message.Entries.Contains(_currentEntry))
                    {
                        Message.Entries.Remove(_currentEntry);
                    }
                    //ApplicationViewModel.Current.IsDrawing = false;
                    _currentEntry = null;
                }

                Point currentPoint = e.GetPosition(sender as Canvas);
                if (_currentEntry != null)
                {
                    _currentEntry.Points.Add(currentPoint);
                }

                //if( _currentEntry == null )
                //{
                //	BeginRecording( e.GetPosition( sender as Canvas ) );
                //}
            }
            else if (_currentEntry != null)
            {
                SendCurrentData();
            }
        }
コード例 #2
0
        public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == DependencyProperty.UnsetValue)
            {
                return(null);
            }
            WhiteboardEntry entry = value as WhiteboardEntry;

            PointCollection points = entry.Points;

            if (points.Count == 1)
            {
                points.Add(points[0]);
            }
            if (entry != null)
            {
                Polyline line = new Polyline();
                line.StrokeThickness    = entry.StrokeThickness;
                line.Stroke             = entry.Stroke;
                line.StrokeStartLineCap = PenLineCap.Round;
                line.StrokeEndLineCap   = PenLineCap.Round;
                line.StrokeLineJoin     = PenLineJoin.Round;
                line.Points             = entry.Points;
                return(line);
            }
            return(null);
        }
コード例 #3
0
ファイル: Whiteboard.xaml.cs プロジェクト: zdchupka/HMCT
 private void SendCurrentData()
 {
     if (_currentEntry != null && CanDraw())
     {
         ApplicationViewModel.Current.ChatProxy.SendWhiteboardData(Message, _currentEntry);
         //ApplicationViewModel.Current.IsDrawing = false;
         _currentEntry = null;
     }
 }
コード例 #4
0
ファイル: Whiteboard.xaml.cs プロジェクト: zdchupka/HMCT
 private void theCanvas_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
 {
     if (e.RightButton == MouseButtonState.Pressed && _currentEntry != null)
     {
         Message.Entries.Remove(_currentEntry);
         _currentEntry = null;
         //ApplicationViewModel.Current.IsDrawing = false;
         e.Handled = true;
     }
 }
コード例 #5
0
ファイル: Whiteboard.xaml.cs プロジェクト: zdchupka/HMCT
        private void BeginRecording(Point p)
        {
            if (CanDraw())
            {
                _startPoint = p;

                Brush brush = ApplicationViewModel.Current.CurrentBrush.Clone();
                brush.Opacity = ApplicationViewModel.Current.CurrentOpacity;

                _currentEntry = new WhiteboardEntry
                {
                    User   = ApplicationViewModel.Current.ChatProxy.CurrentUser,
                    Points = new PointCollection {
                        p
                    },
                    Stroke          = brush,
                    StrokeThickness = ApplicationViewModel.Current.CurrentThickness,
                };

                Message.Entries.Add(_currentEntry);
            }
        }