Πώς μπορώ να πάρω ένα χρώμα από έναν δεκαεξαδικό κωδικό χρώματος (π.χ. #FFDFD991
);
Διαβάζω ένα αρχείο και λαμβάνω έναν δεκαεξαδικό κωδικό χρώματος. Πρέπει να δημιουργήσω την αντίστοιχη περίπτωση System.Windows.Media.Color
για τον δεκαεξαδικό κωδικό χρώματος. Υπάρχει κάποια ενσωματωμένη μέθοδος στο πλαίσιο για να το κάνω αυτό;
Αν υποθέσουμε ότι εννοείτε τους κωδικούς RGB τύπου HTML (που ονομάζονται κωδικοί Hex, όπως #FFCC66), χρησιμοποιήστε την κλάση ColorTranslator:
System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#FFCC66");
Αν, ωστόσο, χρησιμοποιείτε δεκαεξαδικό κώδικα ARGB, μπορείτε να χρησιμοποιήσετε την κλάση ColorConverter από το χώρο ονομάτων System.Windows.Media:
Color col = ColorConverter.ConvertFromString("#FFDFD991") as Color;
//or = (Color) ColorConverter.ConvertFromString("#FFCC66") ;
Χρήση
System.Drawing.Color.FromArgb(myHashCode);
Αν εννοείτε το HashCode όπως στο .GetHashCode()
, φοβάμαι ότι δεν μπορείτε να επιστρέψετε. Οι συναρτήσεις κατακερματισμού δεν είναι αμφίδρομες, μπορείτε να πάτε 'προς τα εμπρός' μόνο, όχι προς τα πίσω.
Ακολουθήστε την πρόταση του Oded'αν θέλετε να πάρετε το χρώμα με βάση τη δεκαεξαδική τιμή του χρώματος.