C # WPF-Screenshot mit SnippingTool-Effekt

8

Ich versuche, eine Screenshot-Grabbing-Funktion in meine WPF-App zu integrieren, und ich möchte, dass sie wie ein Schnipsel-Tool aussieht.

Bisher habe ich es geschafft, etwas Ähnliches zu erreichen, indem ich ein Vollbild-Fenster (mit einer Leinwand) mit einer Deckkraft von 0,5 und einem dunklen Hintergrund erstelle. Wenn ich irgendwo klicke und anfange zu ziehen, wird ein weißes Rechteck gezeichnet, das einen ähnlichen Effekt wie dieses erzeugt.

Was ich gerne haben möchte, ist der innere Teil des Rechtecks, der ein Deckkraftloch in der Hintergrundleinwand öffnet, so dass ich durch den ausgewählten Bereich sehen kann - genau wie ein Schnipsel.

Das Problem ist, dass es ziemlich neu für .NET ist, ich habe keine Ahnung, wie oder wo ich anfangen soll. Habe einige Nachforschungen und Tests zum OpacityMask-Feld des Screenshot-Fensters aber nirgendwo gemacht.

Hier ist ein kleines Video , um den aktuellen Effekt zu zeigen.

Bearbeiten : Gibt es als Bonusfrage auch eine einfache Möglichkeit, einen Screenshot zu erstellen, der sich über mehrere Monitore erstreckt (virtueller Bildschirm)? Graphics.CopyFromScreen() scheint nur für 1 Bildschirm zu funktionieren.
Dies ist bereits behoben und scheint für alle möglichen seltsamen virtuellen Desktop-Layouts zu funktionieren:

%Vor%     
biasedbit 27.10.2010, 11:01
quelle

1 Antwort

2

Sie können CombinedGeometry mit GeometryCombineMode="Exclude" erzeugen, indem Sie einen "gelocht" -Effekt erzeugen. Beispiel:

%Vor%     
Eduardo Molteni 27.10.2010, 14:14
quelle

Tags und Links