In C#/wpf habe ich eine Fortschrittsleiste und ein Mediaelement zu meinem Fenster hinzugefügt. Die Idee war, dass die Fortschrittsleiste anzeigt, wie viel in dem Medienelement gespielt wurde.Binden einer Fortschrittsleiste an ein Mediaelement in WPF
Ich versuchte es mit dem folgenden XAML:
<Window x:Class="TestApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="627" Width="889">
<Grid>
<MediaElement Margin="152,8,140,41" Name="mediaElement1" MediaEnded="mediaElement1_MediaEnded" Visibility="Hidden" />
<ProgressBar Height="23" Margin="152,8,10,0" Name="mp3PlayingProgressBar" VerticalAlignment="Top" Foreground="DarkBlue" Maximum="{Binding Path=NaturalDuration.TimeSpan.TotalSeconds, Mode=OneWay, ElementName=mediaElement1}" Value="{Binding Path=Position.TotalSeconds, Mode=OneWay, ElementName=mediaElement1}" />
</Grid>
</Window>
Ich versuchte, das Maximum und Value-Eigenschaft auf das Mediaelement zu binden. Aber wenn ich zum Beispiel ein mp3 in das Mediaelement lade, passiert nichts mit der Fortschrittsanzeige. (Die Musik spielt so, dass die MP3 geladen und korrekt abgespielt wird).
Ich bevorzuge dies mit einer Bindung zu tun.
Was mache ich hier falsch?
Sie aktualisieren den Wert mit einem Timer. Ich habe es lieber mit einer Bindung gemacht. Ist das nicht möglich? –
Ich kann nicht wirklich sagen, ob es möglich ist oder nicht. Aber ich habe diese Lösung geschrieben, da ich mit Binding nicht arbeiten konnte.Ich erkannte, dass das Problem passierte, weil die Medien nicht geöffnet wurden und ich beschloss, diesen Code zu schreiben. Jemand kann mich korrigieren und eine bessere Lösung anbieten. Ich werde auf diesen Thread abgestimmt bleiben. –