示例#1
0
        private void surface_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                IsCreating = false;
                IsMoving   = false;

                if (!CurrentArea.IsEmpty)
                {
                    if (!IsCurrentAreaValid)
                    {
                        RemoveCurrentArea();
                        CheckHover();
                    }
                    else if (surface.Config.QuickCrop)
                    {
                        surface.UpdateRegionPath();
                        surface.Close(SurfaceResult.Region);
                    }
                    else
                    {
                        SelectArea();
                    }
                }

                if (!CurrentHoverArea.IsEmpty)
                {
                    Areas.Add(CurrentHoverArea);
                    SelectedAreaIndex = Areas.Count - 1;

                    if (surface.Config.QuickCrop)
                    {
                        surface.UpdateRegionPath();
                        surface.Close(SurfaceResult.Region);
                    }
                    else
                    {
                        SelectArea();
                    }
                }
            }
            else if (e.Button == MouseButtons.Right)
            {
                int areaIndex = AreaIntersect();

                if (areaIndex > -1)
                {
                    Areas.RemoveAt(areaIndex);
                    DeselectArea();
                }
                else
                {
                    surface.Close(SurfaceResult.Close);
                }
            }
        }
示例#2
0
        private void EndRegionSelection()
        {
            IsCreating = false;
            IsMoving   = false;

            if (!CurrentArea.IsEmpty)
            {
                if (!IsCurrentAreaValid)
                {
                    RemoveCurrentArea();
                    CheckHover();
                }
                else if (surface.Config.QuickCrop)
                {
                    surface.UpdateRegionPath();
                    surface.Close(SurfaceResult.Region);
                }
                else
                {
                    SelectArea();
                }
            }

            if (!CurrentHoverArea.IsEmpty)
            {
                AddRegionInfo(CurrentHoverArea);

                if (surface.Config.QuickCrop)
                {
                    surface.UpdateRegionPath();
                    surface.Close(SurfaceResult.Region);
                }
                else
                {
                    SelectArea();
                }
            }
        }