Chciałbym nakładać szary, półprzezroczysty obszar na całym ekranie przez C#. Czy można to zrobić za pomocą Windows Forms i jak mam to zrobić?Nakładka ekranu do zrzutu ekranu
Odpowiedz
Oczywiście, po prostu utwórz przezroczyste, półprzezroczyste okno, które obejmuje wszystkie ekrany pulpitu.
Można znaleźć odpowiedni prostokąt na pokrycie wszystkich ekranach z następującym LINQ:
Rectangle bounds = Screen.AllScreens
.Select(x => x.Bounds)
.Aggregate(Rectangle.Union);
Następnie ustaw lewą, górną szerokość i wysokość okna z bounds
Dobrze, zastanawiam się, jak to zrobić. Nie mogę stworzyć okna bez obramowania, a ilekroć wybiorę formę, która ma być "zmaksymalizowana", nie obejmie ona całego ekranu, a pominie 5 pikseli i 10 pikseli. – cam
Zmaksymalizowany prawdopodobnie nie jest tym, czego potrzebujesz. Chcesz, żeby twoje okno było tego samego rozmiaru co cały widoczny obszar ekranu (może na wszystkich ekranach) i możesz uczynić go bez granic, ustawiając właściwość 'FormBorderStyle' na' Brak'. – Joey
+1 Przyjemne korzystanie z Linq do obsługi wielu ekranów, dzięki! – BillW
oprócz używając sugestię, aby ustawić "Johannes własność FormBorderStyle na none, ja również ustawić następujące właściwości tego formularza stosowanego do«dim-out»ekranu:
- , pokaz najwyższego InTaskBar, ControlBox, MaximizeBox, MinimizeBox: „Fałsz
- właściwość Text: jasne, że
bym ustawić«dim-out»rozmiar forma w przypadku obciążenia w postaci: użyję elegancki kod w odpowiedzi Roba, aby ustawić granice formularza dodanego do projektu, jeśli chciałbym obsłużyć przypadek wielu monitorów. Gdybym tylko chciał obsłużyć tylko jeden monitor, to bym po prostu zrobić coś prostego, takich jak:
// in the Load Event of the "dim-out" Form
this.Bounds = Screen.PrimaryScreen.Bounds;
Potem, oczywiście, można pokazać ten „dim-out” forma, kiedy trzeba w odpowiedzi na cokolwiek Twoje widoczne formularze.
Po wyświetleniu formularza "niewyraźnego" pojawi się on na wierzchu innych widocznych Formularzy aplikacji (chyba że jedna z nich ma ustawione właściwości TopMost lub TopLevel).
Ale dobrym efektem, jaki można osiągnąć, jest pokazanie formularza "dim-out" tuż przed wyświetleniem komunikatu MessageBox (lub formularza pokazanego w sposób modalny): oznacza to, że zostanie wyświetlone okno dialogowe MessageBox (lub formularz modalny) "z przodu" ze wszystkim innym za nim "przyciemnione".
Więc oto jak Twój kod, aby pokazać „wygaszone” forma może wyglądać:
dimmedForm.Show();
// change these to suit your taste or purpose
// this.BringToFront();
// dimmedForm.BringToFront();
// example of showing a MessageBox over the dimmedForm
// which will block the current thread
MessageBox.Show("why not ?");
// now hide the dimmedForm
dimmedForm.Hide();
Czasami warto spojrzeć na „własność Toplevel (która nie jest narażona w czasie projektowania) i odświeżanie Twoja wiedza na temat tego, jak ta właściwość może wpływać na kolejność Form na ekranie, a także na badaniu właściwości TopMost formularza (który jest wyświetlany w czasie projektowania).
Potrzebujemy funkcji "odpowiedz merge" :) (+1) –
- 1. Wysyłanie zrzutu ekranu przez C#
- 2. Wykonanie zrzutu ekranu za pomocą C \ GTK
- 3. Nakładka dialogowa modularna jquery nie zajmuje całego ekranu.
- 4. Jak mogę zrzutu ekranu witryny za pomocą R?
- 5. ekranu tylko część ekranu - Swift
- 6. Ogromne zużycie pamięci PhantomJS po zrobieniu zrzutu ekranu
- 7. Wykonanie zrzutu ekranu obiektu Flash za pomocą Selenium z Webdriverem
- 8. Czy jest technicznie możliwe zaprogramowanie zrzutu ekranu witryny internetowej?
- 9. Zrzut ekranu z całego ekranu przy użyciu html5/javascript?
- 10. Wykonywanie zrzutów ekranu bieżącego ekranu urządzenia
- 11. SDK do udostępniania ekranu dla iOS
- 12. Rozmiary ekranu i gęstości ekranu Androida
- 13. Zrzut ekranu w Haskell?
- 14. Zrzut ekranu z kamery internetowej
- 15. Przechwytywanie ekranu
- 16. przeciągać ikony do ekranu głównego
- 17. BroadcastReceiver do włączania/wyłączania ekranu
- 18. Dodać do ekranu iPhone Dim
- 19. Android obraz tła do ekranu
- 20. android - przejdź do ekranu ustawień
- 21. Regulacja szerokości do połowy ekranu
- 22. Jak odczytać piksele ekranu?
- 23. Rozmycie ekranu w LibGDX
- 24. Jak odczytać piksel z ekranu?
- 25. Automatyczne wykonywanie zrzutów ekranu okna programu
- 26. Android orientacji ekranu czujnika
- 27. WKWebView Zrzuty ekranu
- 28. Uzyskiwanie rozdzielczości ekranu
- 29. Spoofing/fałszywa rozdzielczość ekranu?
- 30. Zyskaj zrzut ekranu na Windowsie z Pythonem?
Hej, może wreszcie sprawisz, że ten cholerny monit UAC okaże się przydatny, jeśli możesz po prostu ustawić swoje okienko na monitorze ... –