WPF components

Τα components (κυρίως controls αλλά και class libraries) αποτελούν χρήσιμα δομικά στοιχεία για την ανάπτυξη των WPF εφαρμογών. Η στάνταρ εργαλειοθήκη του Visual Studio περιλαμβάνει πολλά controls αλλά έχει και ελλείψεις. Για παράδειγμα, δεν υπάρχει ένα color picker για την επιλογή χρώματος ή ένα updown control για την βηματική αυξομείωση μίας τιμής. Παρακάτω, θα δείτε μία λίστα από components που έχω κατασκευάσει μαζί με πλήρες manual και sample project για το καθένα. Να σημειωθεί ότι αν δεν βλέπετε το περιεχόμενο του chm manual τότε από τις ιδιότητες του αρχείου κάντε Άρση αποκλεισμού.

Creative Commons

Σημείωση

Όλα τα components απαιτούν το .NET Framework 4.0 και πάνω. Διατίθενται ελεύθερα για προσωπική ή/και για εμπορική χρήση με την άδεια Creative Commons Attribution-ShareAlike 4.0 International με την παράκληση να αναφέρεται το όνομα του δημιουργού.

TextBoxControls v1.1

  • NumericTextBox
  • NullableNumericTextBox
  • NumericRangeTextBox
  • NullableNumericRangeTextBox
  • AlphabeticTextBox
  • RequiredAlphabeticTextBox
  • RequiredTextBox
  • ZRichTextBox

Ένα σύνολο από 23 εξειδικευμένα TextBoxes που βοηθούν στην καταχώρηση δεδομένων συγκεκριμένου τύπου (π.χ. Ιnteger, Long κλπ). Περιλαμβάνει ενδεικτικά: ByteTextBox, NullableByteTextBox, ShortTextBox, NullableShortTextBox, NumericRangeTextBox, RequiredTextBox, DateTextBox και άλλα.

Στην έκδοση v1.1 προστέθηκε ένα bindable ZRichTextBox control.



    Manual

UpDownControls v1.0

  • NumericUpDown
  • DatePickerUpDown

Ένα σύνολο από 8 updown controls που βοηθούν στη βηματική αυξομείωση αριθμητικών και ημερομηνιακών δεδομένων συγκεκριμένου τύπου (π.χ. Ιnteger, Long κλπ). Περιλαμβάνει ενδεικτικά: ByteUpDown, ShortUpDown, IntegerUpDown, DatePickerUpDown και άλλα.



    Manual

ColorControls v1.0

  • ColorSwatchHTML16
  • ColorPicker

2 color controls που βοηθούν στην επιλογή χρώματος. Περιλαμβάνει: ColorSwatchHTML16 που είναι ένα απλό color swatch και βασίζεται στο χρωματικό πρότυπο του HTML 3.2 και το ColorPicker που είναι πιο σύνθετο και βασίζεται στο χρωματικό πρότυπο του Office 2007.



    Manual

RelayCommand v1.0 class library

Ένα ICommand που μπορεί να χρησιμοποιηθεί σε μία MVVM εφαρμογή.



    Manual

DataControls v1.1

  • SortControl
  • CriteriaControl
  • DataNavigator
  • FindXPress

4 Data controls για την διαχείριση δεδομένων. Περιλαμβάνει: SortControl: Μία φόρμα επιλογής κριτηρίων ταξινόμησης. CriteriaControl: Μία φόρμα επιλογής κριτηρίων αναζήτησης και DataNavigator: Παρόμοιο με το παλιό καλό Data control της VB6 για πλοήγηση σε ένα σύνολο εγγραφών/objects. Είναι αντίστοιχο με το DataNavigator που έχω κατασκευάσει για τη WinForms τεχνολογία αλλά με πλουσιότερα και πιο ευέλικτα χαρακτηριστικά συν ότι επιτρέπει εκτός από την πλοήγηση και την προσθήκη/διόρθωση/αποθήκευση/διαγραφή.

Στην έκδοση 1.1 προστέθηκε το FindXPress: Μία φόρμα για τη γρήγορη αναζήτηση μίας τιμής κειμένου μέσα σε μία πηγή δεδομένων που περιέχει μοναδικές τιμές κειμένου.



    Manual

ValueConverters v1.3 class library New

  • ValueConverters

Μία βιβλιοθήκη από 15 κλάσεις ValueConverter. Ως γνωστόν, τα ValueConverters χρησιμοποιούνται σε binding εκφράσεις για τη σύνδεση μίας τιμής μίας target ιδιότητας με μία τιμή μίας source ιδιότητας, διαφορετικού (συνήθως) τύπου. Είναι δηλαδή, κλάσεις μετατροπής τιμής και χρησιμοποιούνται εκτενώς σε data-centric εφαρμογές. Στην παρούσα έκδοση περιλαμβάνονται: BooleanReverseConverter, BooleanToBitConverter, BooleanToBrushConverter, BooleanToFontSizeConverter, BooleanToFontStyleConverter, BooleanToFontWeightConverter, BooleanToImageSourceConverter, BooleanToStringConverter, BooleanToVisibilityConverter.

Στην έκδοση 1.2 προστέθηκαν 4 νέες κλάσεις: DateNullableToStringConverter, DateNullableToCurrentDateConverter, ImageSourceToVisibilityConverter, ImageSourceToStringConverter.

Στην έκδοση 1.3 προστέθηκαν 2 νέες κλάσεις: NumberNullableToStringConverter, NumberAsNullableToStringConverter.
Περισσότερα δείτε στο manual καθώς και στο sample project.



    Manual

Utilities v1.3 class library New

  • Utilities

Μία βιβλιοθήκη έτοιμων ρουτινών (utilities) με τη μορφή στατικών μεθόδων για εύκολη χρήση στον κώδικα. Είναι οργανωμένες σε 8 κατηγορίες: AnimationUtilities, DataUtilities, FileUtilities, FlowDocumentUtilities, ImageUtitlities, MeasureUtilities, SecurityUtilities, WindowUtilities.
Για παράδειγμα, στην κατηγορία AnimationUtilities υπάρχουν μέθοδοι για να εφαρμόσουμε εφέ σε ένα Framework element. Περιέχονται, μεταξύ άλλων, FadeIn, FadeOut, MoveIn, ZoomIn κ.ά. Ή στην κατηγορία SecurityUtilities υπάρχει η μέθοδος GetMD5Hash όπου παίρνουμε ένα MD5 hash key από ένα input string. Πολύ χρήσιμο για να κρυπτογραφήσουμε passwords και να ελέγξουμε την εγκυρότητα ενός password που πληκτρολογεί o χρήστης.

Στην έκδοση v1.1 προστέθηκαν δύο στατικές μέθοδοι στην κλάση WindowUtilities: Η InputMessage η οποία μπορεί να αντικαταστήσει πλήρως την Win32 InputBox και η ShowMessage η οποία μπορεί να αντικαταστήσει πλήρως την Win32 MessageBox.Show(). Και οι δύο περιλαμβάνουν αρκετές υπερφορτωμένες εκδόσεις προσθέτοντας χαρακτηριστικά όπως styles, στρογγυλότητα γωνιών κ.α. που ταιριάζουν στη φιλοσοφία του WPF.

Στην έκδοση v1.2 δεν προστέθηκε κάτι νέο. Απλά έγιναν μερικές τροποποιήσεις σε ρουτίνες της κλάσης DataUtilities.

Στην έκδοση v1.3 προστέθηκαν κάποιες μέθοδοι στην κλάση ImageUtilities, όπως π.χ. η GetThumbnailImage, η οποία επιστρέφει μία εικόνα μειωμένης ανάλυσης (και μεγέθους σε bytes) μέσω pixel decoding εξοικονομώντας μνήμη ιδιαίτερα για εικόνες μεγάλης ανάλυσης ή η GetImageBytes, η οποία επιστρέφει ένα byte array με τα δεδομένα μίας εικόνας από αρχείο ή από ένα BitmapImage source.



    Manual

TextEditorControl v1.0

  • TextEditorControl

Ένα control που βοηθάει στη δημιουργία πεδίων Σημειώσεων (Notes) σε μία φόρμα δεδομένων. Οι σημειώσεις αυτές μπορούν να αποθηκευτούν σε ένα πεδίο text/string μίας Βάσης Δεδομένων (σε μορφή xaml text). Επίσης, μπορεί να χρησιμοποιηθεί αυτόνομα σε ένα παράθυρο εισαγωγής απλού μορφοποιημένου κειμένου (και εισαγωγής εικόνων) παρέχοντας τη δυνατότητα για αποθήκευση σε αρχείο τύπου xaml package, rtf ή plain text.
Περισσότερα δείτε στο manual καθώς και στο sample project.



    Manual

ImageControls v1.0

  • ImageControls

Μία βιβλιοθήκη από controls που σχετίζονται με παρουσίαση/διαχείριση εικόνων. Προς το παρόν, περιέχει ένα SlideShow control για την διαδοχική εμφάνιση (με ή χωρίς εφέ) εικόνων. Η διαδοχή μπορεί να γίνει αυτόματα (auto-play slideshow) ή/και με την παρέμβαση του χρήστη με κουμπιά μπρος-πίσω.

Πολλές ρυθμίσεις μπορούν να γίνουν, όπως για παράδειγμα: εμφάνιση λεζάντας, επιλογή εφέ, διάρκεια εφέ, διάρκεια παραμονής της κάθε εικόνας (για το auto-play slideshow), εμφάνιση ή όχι in-space buttons previous/next (δηλαδή, buttons για την πλοήγηση μπρος-πίσω, μέσα στον χώρο της εικόνας όπως συμβαίνει σε αρκετές περιπτώσεις στα slideshows στο web), κ.α.



    Manual

ChronoControls v1.0

  • ChronoControls

Μία βιβλιοθήκη από controls διαχείρισης χρόνου. Προς το παρόν, περιέχει ένα Chronometer control, το οποίο αποτελεί ένα εξειδικευμένο TextBlock που εμφανίζει ένα χρονόμετρο αντίστροφης μέτρησης (countdown timer), σε μορφή hh:mm:ss. Θα φανεί χρήσιμο στη δημιουργία εκπαιδευτικών εφαρμογών, quizzes κλπ.



    Manual

ButtonControls v1.0

  • ButtonControls

Μία βιβλιοθήκη από button controls. Προς το παρόν, περιέχει ένα ImageButton control που αφορά ένα button που περιλαμβάνει εικόνα και κείμενο.

Μπορούμε να προσαρμόσουμε το ImageButton ώστε να τοποθετήσουμε την εικόνα αριστερά, πάνω, δεξιά ή κάτω από το κείμενο, να θέσουμε το μέγεθός της, την απόσταση μεταξύ αυτής και του κειμένου, την στρογγυλότητα των άκρων (εμμέσως δημιουργείται ένα στρογγυλό button!), το κείμενο του button. Επίσης, μπορούμε να θέσουμε να εμφανίζεται μόνο η εικόνα ή μόνο το κείμενο ή και τα δύο. Τα υπόλοιπα χαρακτηριστικά προέρχονται από την πατρική κλάση Button.



    Manual

ViewControls v1.0 New

  • ChronoControls

Μία βιβλιοθήκη από controls σχετικά με εμφάνιση (layout) δεδομένων. Προς το παρόν, περιέχει ένα CardBox control, το οποίο αποτελεί ένα εξειδικευμένο ListBox που εμφανίζει τα δεδομένα σε μορφή κάρτας.



    Manual