WPF uygulamasında bir ekran görüntüsü yakalama özelliği entegre etmeye çalışıyorum ve bu parça kesme aracına benzemesini istiyorum.C# WPF ekran görüntüsü SnippingTool efekti
Şimdiye kadar, 0,5 ve koyu arka plana ayarlanmış opaklığa sahip bir tam ekran penceresi (bir tuval ile) oluşturarak benzer bir şeyi başardım. Bir yere tıklayıp sürüklemeye başladığımda, this'a benzer bir etki oluşturan beyaz bir dikdörtgen çizilir.
Arka plan tuvalinde bir opaklık deliği açan bu dikdörtgenin iç kısmı, seçilen alanın içinden görebilmem için - tıpkı atlatma aracı gibi - sahip olmak istediğim şey.
Sorun, .NET için oldukça yeni olmakla birlikte, nasıl ve nereden başlayacağımı bilmiyorum. Ekran penceresinin OpacityMask alanında bazı araştırmalar ve testler yaptı ama hiçbir yere ulaşamadı.
Geçerli efekti göstermek için little vid ismidir.
Edit:
Ayrıca, bonus soru olarak, birden çok monitöre (sanal ekran) yayılan bir ekran görüntüsü almanın kolay bir yolu var mı?
Graphics.CopyFromScreen()
sadece 1 ekran için çalışıyor gibi görünüyor.
Zaten bu sabit ve tüm olası garip sanal masaüstü düzenleri için iş gibi görünüyor:
// Capture screenie (rectangle is the area previously selected
double left = Canvas.GetLeft(this.rectangle);
double top = Canvas.GetTop(this.rectangle);
// Calculate left/top offset regarding to primary screen (where the app runs)
var virtualDisplay = System.Windows.Forms.SystemInformation.VirtualScreen;
var primaryScreen = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
if (virtualDisplay.Left < primaryScreen.Left)
{
left -= Math.Abs(virtualDisplay.Left - primaryScreen.Left);
}
if (virtualDisplay.Top < primaryScreen.Top)
{
top -= Math.Abs(virtualDisplay.Top - primaryScreen.Top);
}
İlgili: http://stackoverflow.com/questions/3123776/net-equivalent-of-snipping-tool/3124252#3124252 –
Ben bir masaüstü ekran görüntüsü kapma yaklaşımını aldığını görüyoruz. Bunu yapmak istemediğim halde, mantıklı geliyor! Ayrıca, CopyFromScreen'in negatif koordinatlarla beslenebileceğini fark ettim (eğer diğer ekranım ana ekranın solundaysa) bu yüzden artık sadece matematik meselesi oluyor :) – biasedbit
Eğer yakından bakarsanız, kesme aracı da kapıyor bir masaüstü ekran görüntüsü –