-
Progressbar
Hi Leute,
versuche ich es nochmal mit einer anderen Frage :P
Ich habe in meiner XAML eine Progressbar erzeugt:
Code:
<ProgressBar Height="23" Margin="12,267,6,0" Name="progress" VerticalAlignment="Top" Maximum="{Binding Path=NaturalDuration.TimeSpan.TotalSeconds, Mode=OneWay, ElementName=mediaElement}" Value="{Binding Path=Position.TotalSeconds, Mode=OneWay, ElementName=mediaElement}" />
Wie man hier sehen kann habe ich sie an mein MediaElement gebunden.
In der Vorschau wird die Progressbar angezeigt, wenn ich nun aber
dem Emulator starte, ist dort keine Progressbar zu sehen.
Weiß hierzu jemand was oder auch nicht? :P
-
AW: Progressbar
Leg dir doch mal zwei Labels auf die Page und binde die an die Werte die du da zur Festlegung des ProgressBar nutzen willst. Mein Verdacht geht erst mal in die Richtung, dass da die Typkonvertierung daneben geht.
-
AW: Progressbar
Code:
<TextBlock Height="30" HorizontalAlignment="Left" Margin="291,225,0,0" Name="textBlock1" Text="{Binding Path=NaturalDuration.TimeSpan.TotalSeconds, Mode=OneTime, ElementName=mediaElement}" VerticalAlignment="Top" />
<TextBlock Height="30" HorizontalAlignment="Left" Margin="174,225,0,0" Name="textBlock2" Text="{Binding Path=Position.TotalSeconds, Mode=OneWay, ElementName=mediaElement}" VerticalAlignment="Top" />
ne sorry, Position.TotalSeconds wird natürlich korrekt angezeigt (also die verschrichene Zeit)
DAs NaturalDuration.TimeSpan.TotalSeconds ist immer 0
-
AW: Progressbar
Dann hast du ja quasi deine Antwort wieso es nicht klappt - du setzt ja da über das Binding die Maximallänge auf 0. Da musst du also wohl ein anderes Property suchen dass dir die Daten richtig ausgibt.
-
AW: Progressbar
Ok, verstehe dann allerdings etwas nicht :D
Code:
<TextBlock Height="30" HorizontalAlignment="Right" Margin="0,287,23,0" Name="durationText" Text="{Binding Path=NaturalDuration.TimeSpan.TotalSeconds, Mode=OneWay, ElementName=mediaElement}" VerticalAlignment="Top" />
funktioniert wie schon gesagt nicht, um das Maximum zu setzen.
Wenn ich allerdings:
Code:
durationText.Text = "" + mediaElement.NaturalDuration.TimeSpan.TotalSeconds;
In meine MediaOpened von meinen MediaElement packe, funktioniert es korrekt.....
-
AW: Progressbar
Beim nochmal drüber nachdenken fällt mir da glaub ich ein worans liegt. Das TotalSeconds ist ein ganz normales C# Property. D.h. dein Binding holt sich einmal den Wert und kriegt es nicht mehr mit wenn sich dieser ändert. Das funktioniert nur bei Objekten die INotifyPropertyChanged implementieren was bei TimeSpan halt leider nicht der Fall ist.
Insofern wäre es also möglich dass du eben auch das Maximum im MediaOpened ausliest.
-
AW: Progressbar
Jo so hab ichs jetzt gemacht, so funktionierts, Danke ;)