Alithinos Δημοσ. 21 Μαρτίου 2016 Δημοσ. 21 Μαρτίου 2016 (επεξεργασμένο) edit: Στον τίτλο χρησιμοποίησα λανθασμένα τη λέξη Fullscreen. Αυτό το tutorial είναι για μεγιστοποίηση. Ήθελα να δημιουργήσω ένα Console App, το οποίο να καταλαμβάνει όλη την οθόνη. Αρχικά δεν ήξερα το πως. Έψαξα με το google να βρω απάντηση, και ενώ βρήκα αρκετούς να ρωτάν το πως, οι απαντήσεις που έβρισκα έλεγαν πως κάτι τέτοιο δεν γίνεται. Κάποιοι γράφουν πως αυτό γινόταν μέχρι τα Windows XP, και πως στις μετέπειτα εκδόσεις των Windows δεν υποστηρίζεται. Ωστόσο βρήκα ένα τρόπο, και μιας και δεν βρήκα ο ίδιος απάντηση στο ίντερνετ, είπα να μοιραστώ τον τρόπο και με άλλους. Αυτό που πολλοί βρίσκουν είναι τη μέθοδο Console.SetWindowSize(), η οποία μετρά το μέγεθος της οθόνης σε σειρές και στήλες και όχι pixels. Ωστόσο, αν κάποιος πειραματιστεί αλλάζοντας τις τιμές που εισάγει σε αυτή, προσπαθώντας να βρει τρόπο να τη κάνει να πιάνει όλη την οθόνη, θα αντιμετωπίσει ένα μήνυμα λάθους, πως η τιμή είναι παραπάνω από επιτρεπτή. Ωστόσο υπάρχει τρόπος! Παρακάτω ακολουθεί βήμα - βήμα ο τρόπος με τον οποίο κάποιος μπορεί να ρυθμίσει το μέγεθος του παράθυρου της κονσόλας. 1. Καταρχάς πατάμε το κουμπί Start στο Visual Studio, για να τρέξει η εφαρμογή μας. 2. Στη συνέχεια πατάμε στο border του παραθύρου δεξί κλικ, και στο μενού που θα εμφανιστεί, επιλέγουμε τις "ιδιότητες". 3. Πάμε στη καρτέλα "Διάταξη". 4. Θέτουμε τη θέση παραθύρου σε 0,0. 5. Αλλάζουμε το μέγεθος του παραθύρου στο πλαίσιο "Μέγεθος Παραθύρου", μέχρι να φτάσει να καλύπτει όλη την οθόνη μας. ( θέλει λίγο fine tuning με trial & error). 6. Όταν φτάσουμε το κατάλληλο μέγεθος, σημειώνουμε τις τιμές Πλάτος και Ύψος του πλαισίου Μέγεθος Παραθύρου, καθώς και τις τιμές μεγέθους του buffer οθόνης. 7. Κλείνουμε την κονσόλα και επιστρέφουμε στο Visual Studio. 8. Καλούμε 3 μεθόδους, την Console.SetWindowPosition, την Console.SetBufferSize, και την Console.SetWindowSize. 9. Στις παραμέτρους της SetWindowPosition δίνουμε 0 και 0, και στις άλλες δύο δίνουμε ως παραμέτρους τους αριθμούς που σημειώσαμε νωρίτερα, αντίστοιχα. 10. Την επόμενη φορά που θα τρέξει το πρόγραμμά μας, θα έχει το μέγεθος που ορίσαμε. Υ.Γ. Ενδεικτικά, για ανάλυση 1920x1080 οι τιμές που χρησιμοποιώ είναι οι εξής: System.Console.SetWindowPosition(0,0); System.Console.SetBufferSize(355,300); System.Console.SetWindowSize(236,80); Επεξ/σία 21 Μαρτίου 2016 από Alithinos
defacer Δημοσ. 21 Μαρτίου 2016 Δημοσ. 21 Μαρτίου 2016 Ε.... ναι αλλά αυτό ισχύει μόνο για συγκεκριμένη ανάλυση και συγκεκριμένο font κονσόλας, και πάλι δεν καλύπτει όλη την οθόνη (scroll bars, taskbar, κλπ). Αν θέλεις πραγματικά full screen θα πρέπει να κάνεις το παράθυρο της "κονσόλας" manually (όχι console window, κανονικό, απλά το κάνεις παρόμοιο οπτικά) και το πάρε δώσε με το console process θα γίνεται με standard in/out redirection όπως εδώ. 1
Alithinos Δημοσ. 21 Μαρτίου 2016 Μέλος Δημοσ. 21 Μαρτίου 2016 χμ κατάλαβα. Προς το παρόν μόνο με κονσόλα έχω κάνει ότι έχω κάνει (remember, δεν είμαι επαγγελματίας, αλλά μαθητής) και δεν έχω εμπειρία από Windows Forms. Βέβαια δεν διάλεξα και τις κατάλληλες λέξεις στο πρώτο μήνυμα, να κάνω μεγιστοποίηση παραθύρου ήθελα να πω. My bad. Το θέμα όμως με το font και την ανάλυση, έστω για μεγιστοποίηση παραθύρου, δεν θα λυνόταν και σε μια αποκλειστικά console app ? Να έχω δηλαδή ένα font το οποίο θα εγκαθιστάται στον υπολογιστή του χρήστη, και να ορίζω μέσα στο κώδικα να χρησιμοποιεί αυτό το font ? Και έστω ότι το κάνω να διαβάζει την ανάλυση monitor του εκάστοτε χρήστη που την τοποθετώ σε μεταβλητές ύψος και πλάτος, και ύστερα ανάλογα τον συνδυασμό, να τίθενται οι κατάλληλες τιμές στις 3 μεθόδους που προανέφερα. Βέβαια αυτό θα απαιτούσε να κάτσω και να ελέγξω το ποιες είναι οι κατάλληλες τιμές για κάθε διαφορετική ανάλυση ξεχωριστά...
defacer Δημοσ. 22 Μαρτίου 2016 Δημοσ. 22 Μαρτίου 2016 AFAIK δε μπορείς να το κάνεις αυτό -- υπάρχουν ίσως κάποιες δυνατότητες να το προσπαθήσεις, αλλά βασικά ιστορίες για αγρίους και δε θα έμπαινα στον κόπο. Μπορείς επίσης να έχεις ένα shortcut σε console app και να κανονίσεις τις ρυθμίσεις για την κονσόλα από το shortcut, αλλά και πάλι δεν είναι το ίδιο. Γενικά πάντως τα winforms δεν είναι απαραίτητο συστατικό, μπορεί κανείς να χρησιμοποιήσει οποιοδήποτε framework. Απλά η ιδέα είναι πως το παράθυρο της κονσόλας δε θα είναι console window με την τεχνική έννοια. 1
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα