コード例 #1
0
        public void Dispose()
        {
            if (this.IsDisposed)
            {
                return;
            }
            this.IsDisposed = true;

            if (this.polylineState != null)
            {
                foreach (var item in polylineState)
                {
                    this.canvas.Children.Remove(item.Value.Line);
                }
                this.polylineState.Clear();
                this.polylineState = null;
            }

            this.canvas       = null;
            this.border       = null;
            this.nw           = null;
            this.n            = null;
            this.ne           = null;
            this.e            = null;
            this.se           = null;
            this.s            = null;
            this.sw           = null;
            this.w            = null;
            this.currentState = null;
            this.Resize       = null;
        }
コード例 #2
0
        private Polyline InitPolyline(Cursor cursor, ResizePositions resizePosition)
        {
            var line = new Polyline
            {
                StrokeThickness = 2,
                Stroke          = new SolidColorBrush(color),
                Cursor          = cursor
            };

            polylineState.Add(resizePosition, new PolylineState()
            {
                Line     = line,
                Position = resizePosition
            });

            line.MouseDown += (sender, e) =>
            {
                currentState                   = polylineState[resizePosition];
                currentState.MouseDown         = true;
                currentState.MouseDownPosition = e.GetPosition(canvas);
                currentState.Line.Stroke       = new SolidColorBrush(activeColor);
            };

            line.MouseEnter += (sender, e) =>
            {
                line.Stroke = new SolidColorBrush(activeColor);
            };

            line.MouseLeave += (sender, e) =>
            {
                line.Stroke = new SolidColorBrush(color);
            };

            line.MouseUp += (sender, e) =>
            {
                if (!polylineState[resizePosition].MouseDown)
                {
                    return;
                }
                polylineState[resizePosition].MouseDown = false;
            };

            //line.MouseMove += (sender, e) =>
            //{
            //    this.UpdateState(e.GetPosition(canvas));
            //};

            canvas.Children.Add(line);

            return(line);
        }