toolkit:WrapPanel.Background in C# ändern toolkit:WrapPanel.Background in C# ändern
Danke Danke:  0
Ergebnis 1 bis 10 von 10
  1. Hallo!

    Ich bin schon seit 2 Tagem am verzweifeln... Ich versuche über einen EventHandler in C# die Hintergrundfarbe eines Wrappanels zu ändern. Nach langem Googlen kam ich zu der Lösung, dass das wohl über eine Animation mit einem Storyboard möglich wäre, obwohl deas Wrappanel einen einfachen Setter für die Hintergrundfarbe hat. Hab ich was übersehen oder muss man wirklich diesen komplizierten Weg gehen?

    Oder gibt es in der XAML-Datei eine Möglichkeit, die Hintergrundfarbe an eine Funktion zu binden?

    MfG und schonmal Danke für eure Hilfe

    quotschmacher
    0
     

  2. 21.07.2011, 19:58
    #2
    Ich hab zwar jetzt keine zeit zum testen würde aber spontan mal in der xaml datei bei der gewünchten property ein {Binding bgColor} versuchen und das dann auch im code definieren.

    Wie gesagt wär nur ein Versuch den ich starten würd.

    Mfgee der aza
    Mit der kostenlosen PocketPC.ch App von meinem OMNIA7 aus geschrieben.
    0
     

  3. 26.07.2011, 09:15
    #3
    Hi!

    Hast das Problem gelöst gekriegt?
    0
     

  4. Statisch klappt es, dynamisch noch nicht. Soll heißen: beim laden wird die korrekte Farbe gewählt, Änderungen jedoch nicht übernommen.
    codesnippet:
    <controls:WrapPanel Background="{Binding hintergrundfarbe}">

    Brush Hintergrundfarbe{get{return new SolidColorBrush(Farbe);} set { /* setzt dann halt die Farbe der Variablen Farbe */}}
    Mit der kostenlosen PocketPC.ch App von meinem OMNIA7 aus geschrieben.
    0
     

  5. 26.07.2011, 12:55
    #5
    Ich habs jetzt nicht komplett durchgelesen aber vielleicht hilft dir das weiter:

    http://social.msdn.microsoft.com/For...b-9f9909e987ea
    0
     

  6. Ich dank dir auf jeden Fall erstmal, aber auch da läuft es wieder auf ein Storyboard mit Animation hinaus, was sicher schön aussieht, ich persönlich aber für ein bisschen übertrieben halte, wo ich die Background-Variable ja doch direkt beschreiben kann. Dann muss ich mich wohl doch in das Storyboard reinfuchsen...
    Mit der kostenlosen PocketPC.ch App von meinem OMNIA7 aus geschrieben.
    0
     

  7. 26.07.2011, 13:38
    #7
    Ich dachte eigentlich an einen Reload der Seite

    Hi, there is: http://msdn.microsoft.com/en-us/libr...ut(VS.95).aspx

    so just call your grid like: grid.UpdateLayout() - its not efficient to do this however.
    Ob du dafür ein Storyboard machen musst weiß ich jetzt leider nicht
    0
     

  8. UpdateLayout() war mein allererster Ansatz, hat aber rein garnix bewirkt. Dennoch danke und mir kann es ja auch nicht schaden, wenn ich was über Animationen lerne
    Mit der kostenlosen PocketPC.ch App von meinem OMNIA7 aus geschrieben.
    0
     

  9. 26.07.2011, 13:51
    #9
    Lernen is immer gudd
    0
     

  10. So mit o!

    Habs jetzt hinbekommen. Für alle, die vor einem ähnlichen Problem stehen, ich habe mir hier Anregungen geholt und dann folgende Hilfsklasse implementiert:

    public class AnimationHelper
    {
    public void ChangeBackground(UIElement target, Color targetColor)
    {
    ColorAnimation da = new ColorAnimation();
    Brush start = (target as WrapPanel).Background;
    da.From = (start as SolidColorBrush).Color;
    da.To = targetColor;
    da.Duration = TimeSpan.FromSeconds(0.5);
    da.AutoReverse = false;

    Storyboard.SetTargetProperty(da, new PropertyPath("(target.Background).(SolidColorBrush.Color)"));
    Storyboard.SetTarget(da, target);

    Storyboard sb = new Storyboard();
    sb.Children.Add(da);

    sb.Begin();
    }
    }

    so dass ich im Eventhandler, der das Ändern des Hintergundes auslöst nur noch

    AnimationHelper help = new AnimationHelper();
    help.ChangeBackground(WrapPanelName, Wunschfarbe);

    schreiben muss, um eine Animation von der aktuellen Farbe zur Wunschfarbe zu bekommen.

    Wichtig: initial und wenn nicht anders definiert, hat das WrapPanel den Hintergrundbrush "null". In dieser Hilfsklasse ist keine Sonderbehandlung dafür. Ich habe meinem WrapPanel direkt in der XAML-Datei eine Hintergrundfarbe verpasst, um die NullPointerException zu umgehen.

    Leider ist meine Methode hier noch recht statisch und nur für das WrapPanel nutzbar, da ein UIElement keinen Background hat...

    Ich hoffe dennoch, es nützt irgendwem irgendwie mal...
    0
     

Ähnliche Themen

  1. [2 Jun 11][v3.9] HD2 NAND Toolkit - All in one Toolkit for HD2 NAND Users
    Von Black Beast im Forum HD2 Android Builds NAND-Versionen
    Antworten: 9
    Letzter Beitrag: 06.11.2011, 11:01
  2. Background: Hintergrund ändern
    Von defcon4 im Forum HTC Desire Sonstiges
    Antworten: 2
    Letzter Beitrag: 05.08.2010, 22:23
  3. SIM Toolkit Applikation
    Von hpk im Forum HTC Hero
    Antworten: 3
    Letzter Beitrag: 22.08.2009, 19:59
  4. Background
    Von Ziegenpeter im Forum Plauderecke
    Antworten: 4
    Letzter Beitrag: 03.03.2005, 13:24

Besucher haben diese Seite mit folgenden Suchbegriffen gefunden:

background c#

wrappanel.background c# code

windows phone background c#

sim toolkit bei omnia 7

c# windows phone toolkit

wp7 c# color

Background in c#

wp7 c# background

wp7 c# textblock color

wrappanel .background from code

brush panel background farbcode

wrappanel children refresh

schrift hintergrund c sharp

wrappanel wp7 background size

wrappanel background

Stichworte