VB wpf hintergrund speichern

  • WPF

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Grill23.

    VB wpf hintergrund speichern

    Hallo Ich hab eine Frage zum speichern von Hintergründen in Wpf und zwar weiß ich nicht wie ich mein form Hintergrund speichern kann

    ich hab mehrere Buttons womit ich die Farbe (Hintergrund) ändern kann aber ich weiß nicht wie ich noch das dann speichern kann das der quasi für immer bleibt bis ich wieder irgendwann auf ein anderen Button drücke und sich dann die Farbe ändert

    ich habe es versucht mit my Setting und String das ging aber nicht weil dann ein Fehler kam mit brush ... kein Member von String


    Danke schon mal
    Da keiner antworten will, fang ich mal an. Den Wert aus folgender 1. Funktion in Deinen Settings als Integer speichern und mit der 2. wieder in einen Brush verwandeln

    VB.NET-Quellcode

    1. 'hier schickst Du Me.Background rein
    2. Private Function BrushToIntValue(Brush As Brush) As Integer
    3. Return Convert.ToInt32(Brush.ToString.Substring(1, Brush.ToString.Length - 1), 16)
    4. End Function
    5. 'hier wird Dein Integer-Settings-Wert wieder zu nem Brush
    6. Private Function IntValueToBrush(BGColorIntegerValue As Integer) As Brush
    7. Dim a = (BGColorIntegerValue >> 24) And 255
    8. Dim r = (BGColorIntegerValue >> 16) And 255
    9. Dim g = (BGColorIntegerValue >> 8) And 255
    10. Dim b = BGColorIntegerValue And 255
    11. Return New SolidColorBrush(Color.FromArgb(a, r, g, b))
    12. End Function
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    hmm - also die Color-Struktur hat ihre Konversion zu Integer ja fertig eingebaut - das muss man nur im Objectbrwowser mal nachgucken, dann weiß man, wie aufrufen, und muss keine eigenen (abenteuerlichen) Konvertierungen schreiben.
    Dass man einen Brush in einem Integer abbilden kann wäre mir neu, zumal es der Brushes viele gibt: SolidColorBrush, ImageBrush, HatchBrush, LinearGradientBrush,...

    Andererseits ist auch total unklar, was das dem TE für sein Problem bringen könnte.
    Ich habe nicht geantwortet, weil ich die Frage sehr unpräzise finde, zuzüglich kein CodeBeispiel, keine Fehlerzeile, keine Fehlermeldung.
    Das wird ein Thread ohne Ende, bis ühaupt herausgearbeitet ist, was das Problem ist, und höchstwahrscheinlich wird man auch auf Visual Studio - Empfohlene Einstellungen dringen müssen etc.
    Danke für die antworten und ja es kann sein das die frage unpräzise ist aber ich hab keine Fehlermeldung wenn ich kein Code hab und ich bin Anfänger und ich habe noch ne Frage ich hab das nicht verstanden wie ich jetzt die Einstellung nennen soll ?

    oder welchen genauen wert ich eingeben soll


    Trotzdem Danke!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Grill23“ ()

    @ErfinderDesRades: Klar, das Color eingebaute Konvertierfunktionen hat, weiß ich. Jedoch wusste ich mir erstmal nicht zu helfen, wie ich Form.Background (oder korrekt: Me.Background) was ja vom Typ Brush ist) in einen Farbwert konvertiere, daher die Lösungsansatzabenteuergeschichte. Der TE sagte was von x Buttons -> x Farben. Wenn er andere Farben möchte als einfarbige Farben (häh?), muss er sich melden.

    @Grill23: WieWasEinstellungNennen? Was Du für nen Namen vergibst, bleibt doch Dir überlassen. Du kannst sie SavedFormBackgroundColor oder GespeicherteFarbe oder RaeuberHotzenplotz oder wieauchimmer nennen. Hauptsache ist doch, dass sie (für meinen Lösungsvorschlag) vom Typ Integer ist und dass Du Dir den Namen merken kannst, damit Du sie in Deinem Code wieder aufrufen kannst/wiederfindest/unverwirrt verwenden kannst.

    btw: Bitte, bitte, bitte: Setz Punkt und Komma. Fehlende Satzzeichen führen zu sehr stressigem Lesen und können verwirren, da manchmal die Bedeutung verändert wird, Beispiel: "Iss den Keks nicht liegenlassen!" Das fehlende Komma macht den Satz zweideutig.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    ahhhh ok Danke, aber weißt du auch wie ich den Hintergrund wieder Aufrufen kann oder halt direkt wenn ich die form schließe das der Brush übernommen wird den ich zuletzt hatte ?

    Und geht das auch mit Buttons ?

    Und sorry für meine Rechtschreibung!

    Und ganz wichtig meintest du mit Wert die 16 oder welchen wert ?
    ?(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Grill23“ ()

    Ehm ... es erschließt sich zwar für mich nicht der Zusammenhang zwischen "deutlich jünger" und "meine Rechtschreibung", aber wurscht.

    Grill23 schrieb:

    ahhhh ok Danke, aber weißt du auch wie ich den Hintergrund wieder Aufrufen kann oder halt direkt wenn ich die form schließe das der Brush übernommen wird den ich zuletzt hatte ?


    Das ist interessant. Denn in Post#1 implizierst Du (= machst Aussagen, aus denen sich schließen lässt), dass Du bereits weißt, wie das geht. Stichwort My.Settings. Und was meinst Du mit "Und geht das auch mit Buttons"? Dass man deren Farbe ändert oder dass man mit deren Hilfe die Formfarbe ändert? Denn um letzteres geht es doch wohl seit Post#1.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Für den außenstehenden Leser ist Dein letzter Post echt verwirrend. "der wert sollte 16 sein" Ich vermute mal, dass Du bei meinem Post#2 das Ende von CodeZeile 3 meinst. Korrigiere mich, wenn es anders ich, denn ich muss spekulieren, da meine Glaskugel, die mir das Hellsehen ermöglicht, gerade durch einen Herstellerrückruf nicht verfügbar ist. Diese Zeile 3 meines Post#2-Codes wandelt den Textausdruck des Brushes, der den Brush-Farbwert als Hexadezimalwert enthält (Hexadezimal: glasklar, was gemeint ist? Damit erübrigt sich nämlich Deine Frage.) in einen Dezimalwert um, der dann als eine Zahl in den Settings gespeichert werden kann. Wäre tatsächlich gut, wenn Du Code für das Speichern und Laden der Settings mal postest, damit wir sehen können, ob Du weißt, wie es (richtig) geht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Oh ... mein ... Gotthardtunnel ...
    Ich erinnere an Deinen EIngangspost:

    Grill23 schrieb:

    ich habe es versucht mit my Setting und String das ging aber nicht weil dann ein Fehler kam mit brush ... kein Member von String


    Also durften wir davon ausgehen, dass Du zumindest irgendwas schon hast. X/
    Projekteigenschaften -> Einstellungen:
    • Name: (such Dir was aus, z.B. BGColor)
    • Typ: Integer
    • Bereich: Benutzer
    • Wert: 0
    in Deiner Ladefunktion, z.B. MainWindow_Loaded: Me.Background = IntValueToBrush(My.Settings.BGColor)
    in einer Funktion, die zum Speichern dienen soll, z.B. bei MainWindow_Closing: My.Settings.BGColor = BrushToIntValue(Me.Background)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.