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