Tôi đang cố tích hợp tính năng chụp ảnh màn hình trong ứng dụng WPF của mình và tôi muốn nó trông giống như công cụ cắt.C# WPF chụp ảnh chụp màn hình với hiệu ứng SnippingTool
Cho đến nay, tôi đã quản lý được điều gì đó tương tự bằng cách tạo cửa sổ toàn màn hình (có canvas) với độ mờ được đặt thành 0,5 và nền tối. Khi tôi nhấp vào một nơi nào đó và bắt đầu kéo, một hình chữ nhật màu trắng được vẽ, tạo ra một hiệu ứng tương tự như this.
Điều tôi muốn có là phần bên trong của hình chữ nhật đó mở lỗ mờ trong khung nền, để tôi có thể nhìn xuyên qua khu vực được chọn - giống như công cụ cắt.
Sự cố là, khá mới đối với .NET, tôi không biết phải bắt đầu từ đâu. Đã làm một số nghiên cứu và thử nghiệm trên lĩnh vực OpacityMask của cửa sổ ảnh chụp màn hình nhưng không có nơi nào.
Dưới đây là little vid để hiển thị hiệu ứng hiện tại.
Chỉnh sửa:
Ngoài ra, như câu hỏi tiền thưởng, có cách nào dễ dàng để chụp ảnh màn hình trải dài trên nhiều màn hình (màn hình ảo) không?
Graphics.CopyFromScreen()
chỉ hoạt động với 1 màn hình.
Đã cố định này và dường như làm việc cho tất cả các bố trí máy tính để bàn ảo lạ càng tốt:
// 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);
}
liên quan: http://stackoverflow.com/questions/3123776/net-equivalent-of-snipping-tool/3124252#3124252 –
Tôi thấy rằng bạn đã tiếp cận của grabbing một ảnh chụp màn hình máy tính để bàn. Không có ý nghĩa, mặc dù tôi muốn tránh nó! Ngoài ra, tôi đã nhận ra rằng CopyFromScreen có thể được cho ăn với các tọa độ âm (nếu màn hình khác của tôi nằm ở bên trái của chính) vì vậy bây giờ nó chỉ là vấn đề toán học :) – biasedbit
Nếu bạn nhìn kỹ, công cụ cắt cũng lấy một ảnh chụp màn hình máy tính để bàn –