private void SetPreview()
        {
            var mousePos     = EyeDropperHelper.GetCursorPosition();
            var previewImage = EyeDropperHelper.CaptureRegion(new Int32Rect(mousePos.X - PreviewImageOuterPixelCount, mousePos.Y - PreviewImageOuterPixelCount, 2 * PreviewImageOuterPixelCount + 1, 2 * PreviewImageOuterPixelCount + 1));
            var previewColor = EyeDropperHelper.GetPixelColor(mousePos);

            SetCurrentValue(PreviewImageSourceProperty, previewImage);
            SetCurrentValue(PreviewBrushProperty, new SolidColorBrush(previewColor));
        }
        private void SetPreview()
        {
            var action = new Action(() =>
            {
                var mousePos     = EyeDropperHelper.GetCursorPosition();
                var previewImage = EyeDropperHelper.CaptureRegion(new Int32Rect(mousePos.X - PreviewImageOuterPixelCount, mousePos.Y - PreviewImageOuterPixelCount, 2 * PreviewImageOuterPixelCount + 1, 2 * PreviewImageOuterPixelCount + 1));
                var previewColor = EyeDropperHelper.GetPixelColor(mousePos);

                SetCurrentValue(PreviewImageSourceProperty, previewImage);
                SetCurrentValue(PreviewBrushProperty, new SolidColorBrush(previewColor));
            });

            Dispatcher.BeginInvoke(DispatcherPriority.Background, action);
        }
        private void ColorEyeDropper_PreviewMouseUp(object sender, MouseEventArgs e)
        {
            this.ReleaseMouseCapture();
            this.MouseMove -= this.ColorEyeDropper_PreviewMouseMove;

            this.Cursor = Cursors.Arrow;

            if (!this.IsMouseOver)
            {
                var mousePos = EyeDropperHelper.GetCursorPosition();
                this.SelectedColor = EyeDropperHelper.GetPixelColor(mousePos);
            }

            if (this.ToolTip is ToolTip toolTip)
            {
                toolTip.IsOpen = false;
            }
        }
Example #4
0
        private void SetPreview()
        {
            if (currentTask?.Status == DispatcherOperationStatus.Executing || currentTask?.Status == DispatcherOperationStatus.Pending)
            {
                currentTask.Abort();
            }

            var action = new Action(() =>
            {
                var mousePos     = EyeDropperHelper.GetCursorPosition();
                var previewImage = EyeDropperHelper.CaptureRegion(new Int32Rect(mousePos.X - PreviewImageOuterPixelCount, mousePos.Y - PreviewImageOuterPixelCount, 2 * PreviewImageOuterPixelCount + 1, 2 * PreviewImageOuterPixelCount + 1));
                var previewBrush = new SolidColorBrush(EyeDropperHelper.GetPixelColor(mousePos));
                previewBrush.Freeze();

                PART_PreviewImage.Source = previewImage;
                SetCurrentValue(PreviewBrushProperty, previewBrush);
            });

            currentTask = Dispatcher.BeginInvoke(DispatcherPriority.Background, action);
        }
Example #5
0
        protected override void OnPreviewMouseLeftButtonUp(MouseButtonEventArgs e)
        {
            base.OnPreviewMouseLeftButtonUp(e);

            Mouse.Capture(null);

            if (!(PART_PreviewToolTip is null))
            {
                PART_PreviewToolTip.IsOpen     = false;
                PART_PreviewToolTip.Visibility = Visibility.Collapsed;
            }

            this.Cursor = Cursors.Arrow;

            if (!this.IsMouseOver)
            {
                var mousePos = EyeDropperHelper.GetCursorPosition();
                this.SelectedColor = EyeDropperHelper.GetPixelColor(mousePos);
            }
        }