PictureBoxCaption  Ver 1.2

Ένα .ΝΕΤ control που συνδυάζει ένα PictureBox με ένα Label δίνοντας τη δυνατότητα εμφάνισης μίας εικόνας με λεζάντα. Παρακάτω βλέπετε ένα παράδειγμα, όπoυ το background του control είναι μαύρο, η λεζάντα κίτρινη με κόκκινο χρώμα μελάνης, η δε εικόνα εμφανίζεται κεντραρισμένη στο picturebox :

 

 

Χρήστος Μουρατίδης, Νοέμβριος 2005

 

Διορθώσεις στην έκδοση 1.1

Προσθήκες - Διορθώσεις στην έκδοση 1.2

 

Αποσυμπιέσετε με ένα πρόγραμμα συμπίεσης πχ. WinZip τα περιεχόμενα του αρχείου PictureBoxCaption.zip σε κάποιο φάκελο στο δίσκο. Θα δείτε να δημιουργείται ένας φάκελος με όνομα  PictureBoxCaption Test, ο οποίος περιέχει ένα project δείγματος χρήσης του control 

καθώς και το παρόν readme αρχείο. Το project παρέχει μία υποδειγματική εφαρμογή χρήσης του control.

Λίγα λόγια για το PictureBoxCaption Control

Μπορείτε να χρησιμοποιήσετε το control στις εφαρμογές εκείνες που επιθυμείτε να τοποθετείτε μία λεζάντα κάτω από μία εικόνα. Αντί να χρησιμοποιήσετε ξεχωριστά ένα PictureBox και ένα Label, βάλτε ένα PictureBoxCaption. Η ιδιότητα Image μπορεί να τεθεί σε design ή run-time mode στην εικόνα bitmap από κάποιο αρχείο bitmap (GIF, JPG, BMP, PNG κλπ). Η ιδιότητα CaptionText δέχεται το κείμενο της λεζάντας.

 

·           Για να εισάγετε μία εικόνα χρησιμοποιείστε την ιδιότητα Image :

 

PictureBoxCaption1.Image = System.Drawing.Image.FromFile(“Σαμοθράκη-1.jpg”)"

 

 

Μην ξεχνάτε ότι ο τύπος Image πρέπει να είναι Bitmap. Αν επιθυμείτε να διαγράψετε την εικόνα, εκχωρείστε την τιμή Nothing.

 

·           Για να ορίσετε το mode εμφάνισης της εικόνας ορίστε την ιδιότητα ImageSizeMode ::

 

PictureBoxCaption1.ImageSizeMode = ImageSizeModeEnum.CenterImage

 

H τιμή προέρχεται από μία απαρίθμηση ImageSizeModeEnum του control. Οι άλλες δύο είναι Normal και StretchImage

 

·           Για να ορίσετε ένα Tooltip text για την εικόνα καθορίστε την ιδιότητα ImageTooltip (νέο στην έκδοση 1.2) :

 

PictureBoxCaption1.ImageToolTip = “Ηλιοβασίλεμα στη Σαμοθράκη”

·           Για το κείμενο της λεζάντας, θέστε μία τιμή στην ιδιότητα CaptionText :

 

PictureBoxCaption1.CaptionText  = "Σαμοθράκη"

PictureBoxCaption1.CaptionTextAlign = ContentAlignment.MiddleCenter

PictureBoxCaption1.Font = New Font("Arial", 9, FontStyle.Bold)

 

            Εδώ ορίσαμε τη στοίχιση και τη γραμματοσειρά της λεζάντας.

 

·           Για να ορίσετε το χρώμα φόντου της λεζάντας κάντε χρήση της ιδιότητας CaptionBackColor :

 

PictureBoxCaption1.CaptionBackColor = Color.AliceBlue

 

·           Αν δεν επιθυμείτε να εμφανίζετε η λεζάντα (παρά μόνο η εικόνα) θέστε ανάλογα την ιδιότητα CaptionVisible :

 

PictureBoxCaption1.CaptionVisible = False

 

·           Το ύψος της λεζάντας (σε pixels), δηλαδή πόσο χώρο θα καταλάβει στο control, καθορίζεται από την ιδιότητα CaptionHeight :

 

PictureBoxCaption1.CaptionHeight = 23

 

·           Με την ιδιότητα VisibleControl καθορίζουμε αν θα είναι ορατό ή όχι το control και με την ιδιότητα BackColorInvisible καθορίζουμε το χρώμα φόντου όταν αυτό δεν θα είναι ορατό (συνήθως ίδιο με το χρώμα φόντου του container π.χ. της φόρμας) : 

 

PictureBoxCaption1.VisibleControl = False

           PictureBoxCaption1.BackColorInvisible = Form1.BackColor

 

Δείτε την εφαρμογή επίδειξης που περιέχει αρκετά σχόλια ως τεκμηρίωση.

 

Παρακάτω παρουσιάζονται οι ιδιότητες, μέθοδοι και τα γεγονότα του control :

Ιδιότητες                                 

  

1)    Image              : Το αντικείμενο Bitmap.

2)    ImageSizeMode      : Το mode εμφάνισης της εικόνας, τύπου ImageSizeModeEnum.

3)    ImageToolTip      : ‘Ένα Tooltip text όταν το ποντίκι στέκεται πάνω από την εικόνα (νέο στην έκδοση 1.2).

4)    ImageBorderStyle   : Το στυλ του περιγράμματος της εικόνας, τύπου BorderStyle.

5)    CaptionText        : H λεζάντα.

6)    CaptionTextAlign   : Η στοίχιση της λεζάντας, τύπου ContentAlignment.

7)    CaptionBackColor   : Το χρώμα φόντου της λεζάντας.

8)    CaptionHeight      : Το ύψος της λεζάντας, σε pixels (Single type).

9)    CaptionBorderStyle : Το στυλ του περιγράμματος της λεζάντας, τύπου BorderStyle.

10)CaptionVisible      : Αν θα είναι ορατή ή όχι η λεζάντα.

11)VisibleControl      : Αν θα είναι ορατό ή όχι το control.

12)BackColorInvisible : Tο χρώμα φόντου όταν δεν θα είναι ορατό το control (συνήθως ίδιο με το χρώμα φόντου του container π.χ. της φόρμας)

Γεγονότα

 

1)    OnImageMouseMove()     : Ενεργοποιείται όταν το ποντίκι κινήθηκε στην εικόνα.

2)    OnImageMouseLeave ()   : Ενεργοποιείται όταν το ποντίκι αφήνει την εικόνα.

3)    OnImageMouseEnter()     : Ενεργοποιείται όταν το ποντίκι εισέρχεται στην εικόνα.

4)    OnImageMouseHover()     : Ενεργοποιείται όταν το ποντίκι ίπταται στην εικόνα.

5)    OnImageMouseClick()     : Ενεργοποιείται όταν κάνουμε κλικ στην εικόνα (νέο στην έκδοση 1.2).

6)    OnImageMouseDoubleClick() : Ενεργοποιείται όταν κάνουμε διπλό-κλικ στην εικόνα (νέο στην έκδοση 1.2).

7)    OnImageChanged()        : Ενεργοποιείται όταν αλλάζει η εικόνα.

 

Στην έκδοση 1.2 έγιναν κάποιες διορθώσεις ώστε το αντικείμενο sender να επιστρέφει το control.

Mέθοδοι

 

 

  Public Αντικείμενα

 

1)    ImageSizeModeEnum : Μία απαρίθμηση (Enum) για το mode εμφάνισης της εικόνας. Τρεις τιμές :

Normal       : H εικόνα εμφανίζεται ξεκινώντας από την άνω αριστερά γωνία.

CenterImage : H εικόνα εμφανίζεται κεντραρισμένη.

StretchImage : H εικόνα εμφανίζεται καταλαμβάνοντας όλο το χώρο του PictureBox.

 

     

Παρατηρήσεις

Προσθέστε στο ToolBox της VB.NET το PictureBoxCaption control και χρησιμοποιήστε το ελεύθερα στις εφαρμογές σας. Το assembly αρχείο PictureBoxCaption.dll θα το βρείτε στο φάκελο bin.

 

ΠΡΟΒΛΗΜΑ ΜΕ ΤΟ PROJECT ΔΕΙΓΜΑΤΟΣ ΧΡΗΣΗΣ - ΛΥΣΗ.

 

Αν στα References του project δείγματος χρήσης εμφανίζει με κίτρινο θαυμαστικό το PictureBoxCaption τότε πρέπει να ενημερώσετε το Reference Path του project ώστε να ψάχνει στο φάκελο που έχετε βάλει το dll του control.

 

1) Στο Solution Explorer κάντε δεξί κλικ στο prοject και επιλέξτε Properties.

2) Στο παράθυρο ιδιοτήτων του project που ανοίγει, πηγαίνετε στο τμήμα Common Properties και Reference Path.

3) Δεξιά, πατήστε το browse button (...) για να βρείτε το Folder όπου βρίσκεται το assembly dll του control στον δικό σας υπολογιστή.

4) Πατήστε το button Update. Σώστε το project, κλείστε το και ξανανοίξτε το. Τώρα, πρέπει να εμφανίζονται όλα κανονικά.  

 

Επικοινωνία

Για οποιεσδήποτε παρατηρήσεις στείλτε e-mail στην παρακάτω διεύθυνση.

 

mouratx@yahoo.com

Χρήστος Μουρατίδης

 

Διορθώσεις στην έκδοση 1.1

 

Διορθώθηκε ένα πρόβλημα με την ιδιότητα CaptionVisible που  αγνοούσε την καταχωρημένη τιμή της ιδιότητας σε design-mode.

 

Προσθήκες - Διορθώσεις στην έκδοση 1.2

 

  1. Προστέθηκε μία νέα ιδιότητα : ImageToolTip : Καθορίζουμε ένα ToolTip text όταν το ποντίκι στέκεται πάνω από την εικόνα.

 

  1. Προστέθηκαν δύο νέα γεγονότα :

                                                               i.      OnImageMouseClick()             : Ενεργοποιείται όταν κάνουμε κλικ στην εικόνα.

                                                             ii.      OnImageMouseDoubleClick() : Ενεργοποιείται όταν κάνουμε διπλό-κλικ στην εικόνα.

 

  1. Έγιναν κάποιες διορθώσεις ώστε το αντικείμενο sender, της ρουτίνας διαχείρισης του γεγονότος,  να επιστρέφει το control