예제 #1
0
        /// <summary>
        /// Creates an instance of the class
        /// </summary>
        public RoundedButton()
        {
            RoundedRectangleRegion rndRectRegion = new RoundedRectangleRegion();

            this.Region  = rndRectRegion.GetRoundedRect(new RectangleF(this.ClientRectangle.Left, this.ClientRectangle.Top, this.ClientRectangle.Width, this.ClientRectangle.Height), 8);
            this.Resize += new EventHandler(RoundedButton_Resize);
        }
예제 #2
0
        private void CaptureRegion(CaptureType captureType, TaskSettings taskSettings, bool autoHideForm = true)
        {
            Surface surface;

            switch (captureType)
            {
            default:
            case CaptureType.Rectangle:
                if (taskSettings.AdvancedSettings.UseLightRectangleCrop)
                {
                    CaptureLightRectangle(taskSettings, autoHideForm);
                    return;
                }

                surface = new RectangleRegion();
                break;

            case CaptureType.RectangleWindow:
                RectangleRegion rectangleRegion = new RectangleRegion();
                rectangleRegion.AreaManager.WindowCaptureMode = true;
                surface = rectangleRegion;
                break;

            case CaptureType.RoundedRectangle:
                surface = new RoundedRectangleRegion();
                break;

            case CaptureType.Ellipse:
                surface = new EllipseRegion();
                break;

            case CaptureType.Triangle:
                surface = new TriangleRegion();
                break;

            case CaptureType.Diamond:
                surface = new DiamondRegion();
                break;

            case CaptureType.Polygon:
                surface = new PolygonRegion();
                break;

            case CaptureType.Freehand:
                surface = new FreeHandRegion();
                break;
            }

            DoCapture(() =>
            {
                Image img        = null;
                Image screenshot = Screenshot.CaptureFullscreen();

                try
                {
                    surface.Config       = taskSettings.CaptureSettings.SurfaceOptions;
                    surface.SurfaceImage = screenshot;
                    surface.Prepare();
                    surface.ShowDialog();

                    if (surface.Result == SurfaceResult.Region)
                    {
                        img = surface.GetRegionImage();
                        screenshot.Dispose();
                    }
                    else if (surface.Result == SurfaceResult.Fullscreen)
                    {
                        img = screenshot;
                    }
                }
                finally
                {
                    surface.Dispose();
                }

                return(img);
            }, captureType, taskSettings, autoHideForm);
        }
예제 #3
0
        private void RoundedButton_Resize(object sender, EventArgs e)
        {
            RoundedRectangleRegion rndRectRegion = new RoundedRectangleRegion();

            this.Region = rndRectRegion.GetRoundedRect(new RectangleF(this.ClientRectangle.Left, this.ClientRectangle.Top, this.ClientRectangle.Width, this.ClientRectangle.Height), 8);
        }