Ένα .ΝΕΤ control που συνδυάζει ένα PictureBox με ένα Label δίνοντας τη δυνατότητα εμφάνισης μίας εικόνας με λεζάντα. Παρακάτω βλέπετε ένα παράδειγμα, όπoυ το background του control είναι μαύρο, η λεζάντα κίτρινη με κόκκινο χρώμα μελάνης, η δε εικόνα εμφανίζεται κεντραρισμένη στο picturebox :
Χρήστος Μουρατίδης, Νοέμβριος 2005
Προσθήκες - Διορθώσεις
στην έκδοση 1.2
Αποσυμπιέσετε με ένα πρόγραμμα συμπίεσης πχ. WinZip τα περιεχόμενα του αρχείου PictureBoxCaption.zip σε κάποιο φάκελο στο δίσκο. Θα δείτε να δημιουργείται ένας φάκελος με όνομα PictureBoxCaption Test, ο οποίος περιέχει ένα project δείγματος χρήσης του control
καθώς και το παρόν readme αρχείο. Το project παρέχει μία υποδειγματική εφαρμογή χρήσης του 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.
1) ImageSizeModeEnum : Μία απαρίθμηση (Enum) για το mode εμφάνισης της εικόνας. Τρεις
τιμές :
CenterImage : H εικόνα εμφανίζεται
κεντραρισμένη.
StretchImage : H εικόνα εμφανίζεται
καταλαμβάνοντας όλο το χώρο του PictureBox.
Προσθέστε στο ToolBox της VB.NET το PictureBoxCaption control και χρησιμοποιήστε το ελεύθερα στις εφαρμογές σας. Το assembly αρχείο PictureBoxCaption.dll θα το βρείτε στο φάκελο bin.
Αν στα 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
Χρήστος Μουρατίδης
Διορθώθηκε ένα πρόβλημα με την ιδιότητα CaptionVisible που
αγνοούσε την καταχωρημένη τιμή της ιδιότητας σε design-mode.
i. OnImageMouseClick() : Ενεργοποιείται όταν κάνουμε κλικ στην εικόνα.
ii. OnImageMouseDoubleClick() : Ενεργοποιείται όταν κάνουμε διπλό-κλικ στην εικόνα.