CoolFace
Datasetpublic

dlxjj/imradv3

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes263downloads
MainWindow.xaml.cs98 linesDownload Raw Back to ScreenGrab.Sample
1using NHotkey;2using NHotkey.Wpf;3using ScreenGrab.Extensions;4using System.ComponentModel;5using System.Drawing;6using System.Windows;7using System.Windows.Input;8using Wpf.Ui.Tray.Controls;9 10namespace ScreenGrab.Sample;11 12public partial class MainWindow13{14    public MainWindow()15    {16        InitializeComponent();17    }18 19    private void Capture()20    {21        Clean();22 23        //ScreenGrabber.OnCaptured = bitmap =>24        //{25        //    Img.Source = bitmap.ToImageSource();26        //    if (WindowState != WindowState.Normal)27        //        WindowState = WindowState.Normal;28        //    if (!IsVisible)29        //        Show();30        //    Activate();31        //};32        //ScreenGrabber.Capture(AuxiliaryCb.IsChecked ?? false);33 34        if (ScreenGrabber.IsCapturing) return;35        // https://github.com/wuqinchao/ScreenCapturer36            // 替代品 37        ScreenGrabber.OnCaptured = async (bitmap, type) => await ScreenshotCallbackAsync(bitmap, type, null);38        ScreenGrabber.Capture(true);39    }40 41    internal async Task ScreenshotCallbackAsync(Bitmap? bitmap, string type, CancellationToken? token = null)42    {43        if (bitmap == null)44        {45            //ShowBalloonTip("图像不存在");46            return;47        }48    }49 50    private void Capture(object? sender, HotkeyEventArgs e)51    {52        Capture();53    }54 55    private void Capture_Click(object sender, RoutedEventArgs e)56    {57        Capture();58    }59 60    private void Clean_Click(object sender, RoutedEventArgs e)61    {62        Clean();63    }64 65    private void Clean()66    {67        Img.Source?.Freeze();68        Img.Source = null;69        GC.Collect();70    }71 72    private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)73    {74        HotkeyManager.Current.AddOrReplace("Capture", Key.A, ModifierKeys.Windows | ModifierKeys.Shift, Capture);75    }76 77    private void MainWindow_OnUnloaded(object sender, RoutedEventArgs e)78    {79        HotkeyManager.Current.Remove("Capture");80    }81 82    protected override void OnClosing(CancelEventArgs e)83    {84        e.Cancel = true;85        Hide();86    }87 88    private void NotifyIcon_OnLeftClick(NotifyIcon sender, RoutedEventArgs e)89    {90        Show();91        Activate();92    }93 94    private void MenuItem_OnClick(object sender, RoutedEventArgs e)95    {96        Application.Current.Shutdown();97    }98}