Hallo miteinander
Ich habe einen farbanimierten SplashScreen mit diesem Code:
Das funktioniert im Testprogramm ausgezeichnet, aber im Hauptprojekt zeigt es nach dem Laden nur die erste Farbe, und dann kurz bevor das Hauptprogramm geladen ist beim Schliessen zeigt es noch eine zweite Farbe.
Ich nehme an, dass da einfach die UI nicht upgedatet wird, daher die Frage:
Kann man die Methode vielleicht irgendwie in einem anderen Thread laufen lassen? Oder hat jemand sogar ne bessere Idee?
Freu mich auf Eure Antworten
kafffee
Ich habe einen farbanimierten SplashScreen mit diesem Code:
VB.NET-Quellcode
- Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs)
- Dim FarbListe As New List(Of System.Windows.Media.Color)
- Dim rnd As New Random
- 'Dim MeineAnimation As New ColorAnimation
- For i = 0 To 9 'hier habe ich es mit mehr oder weniger Farben ausprobiert
- FarbListe.Add(System.Windows.Media.Color.FromRgb(rnd.Next(0, 255), rnd.Next(0, 255), rnd.Next(0, 255)))
- Next
- Dim animatedBrush As New SolidColorBrush()
- animatedBrush.Color = Color.FromArgb(255, 0, 0, 0)
- lblTitelLeiste.Background = animatedBrush
- Me.RegisterName("AnimatedBrush", animatedBrush)
- Dim colorAnimation As New ColorAnimationUsingKeyFrames()
- colorAnimation.Duration = TimeSpan.FromMilliseconds(10000) 'auch mit den Milllisekunden hab ich gespielt
- For Each Farbe In FarbListe
- colorAnimation.KeyFrames.Add(New LinearColorKeyFrame(Farbe)) ', KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(20)))) ' KeyTime - Target value (KeyValue) 'hier auch
- Next
- colorAnimation.RepeatBehavior = RepeatBehavior.Forever
- Storyboard.SetTargetName(colorAnimation, "AnimatedBrush")
- Storyboard.SetTargetProperty(colorAnimation, New PropertyPath(SolidColorBrush.ColorProperty))
- Dim myStoryboard As New Storyboard()
- myStoryboard.Children.Add(colorAnimation)
- myStoryboard.Begin(Me)
- End Sub
Das funktioniert im Testprogramm ausgezeichnet, aber im Hauptprojekt zeigt es nach dem Laden nur die erste Farbe, und dann kurz bevor das Hauptprogramm geladen ist beim Schliessen zeigt es noch eine zweite Farbe.
Ich nehme an, dass da einfach die UI nicht upgedatet wird, daher die Frage:
Kann man die Methode vielleicht irgendwie in einem anderen Thread laufen lassen? Oder hat jemand sogar ne bessere Idee?
Freu mich auf Eure Antworten
kafffee