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 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); }