Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Eφαρμογή τύπου taskbar των windows

Îåêßíçóå áðü ôï ìÝëïò manosB. Τελευταία δημοσίευση από το μέλος KelMan στις 06-03-2008, 10:13. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-03-2008, 12:49 40729

    Eφαρμογή τύπου taskbar των windows

    Πως μπορούμε να φτιάξουμε μια εφαρμογή που όταν είναι ορατή καμιά άλλη να μην μπορεί να την επικαλύπτει. Δηλαδή όπως είναι η taskbar των windows. Φανταστείτε τη φόρμα σαν μια λωρίδα πάνω από το taskbar ή στο πάνω μέρος της οθόνης και καμιά άλλη εφαρμογή να μην μπορεί να την καλύψει.
    Καμιά ιδέα?



    Manos
  •  05-03-2008, 16:37 40731 σε απάντηση της 40729

    Απ: Eφαρμογή τύπου taskbar των windows

    Καλησπέρα!

    Μπορείς να σετάρεις το property topmost = true....

    Διαμάντης


    A wise man does not urinate against the wind Smile
  •  05-03-2008, 16:53 40732 σε απάντηση της 40731

    Απ: Eφαρμογή τύπου taskbar των windows

    Διαμαντή με το topmost=true απλώς βάζεις τη φόρμα σε πρώτο πλάνο. Εγώ δεν θέλω μόνο αυτό, αλλά θέλω και να μην επικαλύπτει η φόρμα και τις άλλες εφαρμογές. Για αυτό έφερα σαν παράδειγμα την taskbar των windows. Παράδειγμα αν η φόρμα μου είναι μια taskbar πάνω από τη taskbar τότε όλες οι άλλες εφαρμογές (office, outlook, explorer) να ανοίγουν πάνω από τη δική μου.


    Manos
  •  05-03-2008, 17:08 40733 σε απάντηση της 40732

    Απ: Eφαρμογή τύπου taskbar των windows

    manosB:
    Παράδειγμα αν η φόρμα μου είναι μια taskbar πάνω από τη taskbar τότε όλες οι άλλες εφαρμογές (office, outlook, explorer) να ανοίγουν πάνω από τη δική μου.


    Ααααααα, παρανόησις! Smile Δεν είναι μάλλον τόσο απλό. Γι' αυτό δεν έχει απαντήσει κανένας ακόμα! Λέω κι εγώ Smile

    Διαμάντης




    A wise man does not urinate against the wind Smile
  •  05-03-2008, 17:22 40735 σε απάντηση της 40733

    Απ: Eφαρμογή τύπου taskbar των windows

    Δεν είναι πολύ δύσκολο, API calls χρειάζεσαι (νομίζω η SetWindowPos κάνει τη δουλειά). Δεν θεωρείται όμως καλό να "ξεφεύγεις" από τα πλαίσια του προγράμματός σου και να επιβάλλεις αυτό που θες εσύ στα υπόλοιπα προγράμματα.

    [edit]

    Ναι, η SetWindowPos είναι: http://vbnet.mvps.org/index.html?code/faq/topmost.htm


    Vir prudens non contra ventum mingit
  •  05-03-2008, 18:00 40739 σε απάντηση της 40729

    Απ: Eφαρμογή τύπου taskbar των windows

    Λοιπόν η λύση ακούει στο όνομα Application Desktop Toolbars. (αντιγράφω από το msdn)
    An application desktop toolbar(also called an appbar) is a window that is similar to the Microsoft Windows taskbar. It is anchored to an edge of the screen, and it typically contains buttons that give the user quick access to other applications and windows. The system prevents other applications from using the desktop area occupied by an appbar. Any number of appbars can exist on the desktop at any given time.
    Εδώ και το Link για να ξεκινήσει κάποιος




    Manos
  •  06-03-2008, 09:07 40744 σε απάντηση της 40735

    Απ: Eφαρμογή τύπου taskbar των windows

    KelMan:
    Δεν θεωρείται όμως καλό να "ξεφεύγεις" από τα πλαίσια του προγράμματός σου και να επιβάλλεις αυτό που θες εσύ στα υπόλοιπα προγράμματα.


    Κοίτα δεν επιβάλεις τίποτα. Αν έχεις παράμετρο να μπορεί να την κλείνει όποτε θέλει ο χρήστης δεν νομίζω να υπάρχει πειθαναγκασμός Smile. Άλλωστε οι εφαρμογές που μπορεί να υλοποιήσεις ενδεικνύονται για ένα τέτοιο περιβάλλον (alert or messaging services πχ).

    Manos
  •  06-03-2008, 09:47 40747 σε απάντηση της 40744

    Απ: Eφαρμογή τύπου taskbar των windows

    Αυτό που ζητάς λέγεται Application Desktop Toolbar ή AppBar και γίνεται μόνο μέσω του Shell API. Το .NET δεν έχει κάποια σχετική κλάση αλλά θα βρεις κάποια άρθρα στο Google που σου δείχνουν πως να τα χρησιμοποιήσεις.

    Γενικά η χρήση των AppBar έχει μειωθεί πάρα πολύ από το 2000 που πρωτοβγήκαν, καθώς ο κόσμος διαπίστωσε ότι 1) χάνουν πολύτιμο χώρο στο desktop και 2) Η συνεχής εμφάνιση alerts και notifications εκεί ήταν σπαστική. Αν ο χρήστης δεν θέλει να βλέπει την εφαρμογή σου, δεν θέλει να βλέπει ούτε τα μηνύματα της. Είναι σαν να έχεις μία κουτσομπόλα γειτόνισα η οποία συνεχώς θέλει να σου λέει ειδήσεις από τα ανήψια της, ακόμα και όταν εσύ έχεις κλειστά τα πατζούρια. Δεν θέλουμε βρε!

    Καλύτερα να βάλεις στην δική σου εφαρμογή μία περιοχή για ανακοινώσεις και να εμφανίζεις Notifications όταν έχεις κάποιο σημαντικό μήνυμα, όπως κάνουν το Outlook και ο Messenger. Δεν είναι τυχαίο ότι αυτή η μορφή notification χρησιμοποιείται απ' όλους ενώ τα AppBars ουσιαστικά εξαφανίστηκαν.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  06-03-2008, 10:13 40748 σε απάντηση της 40744

    Απ: Eφαρμογή τύπου taskbar των windows

    Φυσικά και επιβάλεις, από τη στιγμή που το παράθυρό σου ξεφεύγει από την τυπική συμπεριφορά που έχουν όλα τα υπόλοιπα. Ο χρήστης ξέρει ότι όταν θα φέρει σε focus κάποια εφαρμογή, θα περάσει μπροστά. Αν πάει κάτω από το δικό σου παράθυρο, τότε του αλλάζεις το exprerience. Αν τώρα το παράθυρό σου είναι docked σε κάποια πλευρά, θα πρέπει αντίστοιχα όταν γίνονται maximized τα παράθυρα να μην μπαίνουν από κάτω. Από εκεί και πέρα καλό θα είναι να υπάρχει κάπου εύκολα προσβάσιμο το option να απενεργοποιήσεις το "always on top of other windows", ακόμα και το SideBar δουλεύει έτσι. Και σκέψου επίσης ότι αν για σένα είναι δικαιολογημένο να είναι always on top η εφαρμογή σου (ή έστω το notification area), για άλλους μπορεί να μην είναι...


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems