Laden...

Compact Framework 2 : Farbe in Datenbank speichern

Erstellt von MuhammedC# vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.338 Views
M
MuhammedC# Themenstarter:in
222 Beiträge seit 2005
vor 16 Jahren
Compact Framework 2 : Farbe in Datenbank speichern

Hallo,

ich möchte in meiner CF2 Anwenung eine Farbe in einer Datenbank speichern.
Dabei möchte ich nicht mit dem RGB Farbwert arbeiten (Color.FromArgb...) sondern mit den SystemColors arbeiten.
Leider habe ich aber keine möglichkeit gefunden eine Farbe wie z.B.


this.dataGridLeft.BackgroundColor = System.Drawing.SystemColors.ControlLight;

abzuspeichern. Danke für eure Hilfe 🙂

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo MuhammedC#,

SystemColors.ControlLight liefert ja eine Color-Struktur. Diese solltest du mit ColorConverter-Klasse in einen String umwandeln können, den du dann speichern kannst, und aus dem String solltest du mit der ColorConverter-Klasse später auch wieder eine Color-Struktur erzeugen können.

herbivore

M
MuhammedC# Themenstarter:in
222 Beiträge seit 2005
vor 16 Jahren

Hi,

erst mal danke.

Nur leider gibt es weder ColorConverter noch ColorTranslator im CF2 🙂

T
223 Beiträge seit 2006
vor 16 Jahren

Hi,

Warum wandelst du sie nicht in den ARGB Wert um zum speichern und wieder zurück zur Verarbeitung?


// das abspeichern
ColorToArgb = Color.Black.ToArgb();

// so wiederherstellen
ArgbToColor = Color.FromArgb(ColorToArgb);

Gruß Thomas

M
MuhammedC# Themenstarter:in
222 Beiträge seit 2005
vor 16 Jahren

Hi,

danke so werde ich es wahrscheinlich machen müssen. Nur schade ist wenn einer das Windows Theme verstellt und alles danach doof aussieht 😦

Gruß MC#

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo MuhammedC#,

du könntest Color.ToString speichern und dann per Reflection zu dem Namen die zugehörige SystemColors-Property auslesen.

herbivore

M
MuhammedC# Themenstarter:in
222 Beiträge seit 2005
vor 16 Jahren

Hi,

ja aber wenn zwischendurch einer das Skin verstellt hat, kann ich die Farbe auch nicht mehr auf den reflektierten Wert vergleichen...

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo MuhammedC#,

warum nicht? Ich denke, es sollte gehen. Du speicherst ja den symbolischen Namen, nicht den RGB-Wert.

SystemColors.ControlLightToString () liefert "Color [ControlLight]".

herbivore