У меня есть MediaElement и Slider. Как я могу привязать MediaElement.Position к Slider.Value без DispatcherTimer?
Привязка MediaElement к положению ползунка
Ответы (1)
ОК, ТАК это МОГУТ быть таковым:
<Slider
x:Name="PositionSlider"
Minimum="0"
Maximum="{Binding
ElementName=mediaElement,
Path=mediaElement.NaturalDuration.TimeSpan.TotalMilliseconds}"
/>
<MediaElement
x:Name="mediaElement"
Position="{Binding Value,
ElementName=PositionSlider,
Converter={StaticResource MyMsToTimeSpanConverter}}" />
!! НО !! Позиция не является свойством зависимости, поэтому вы не можете выполнять для нее какие-либо привязки. Когда вы говорите «это не работает»… УВЕРЕН, что это не работает и никогда не будет. привязка требует свойств зависимостей.
Поэтому вы должны поступать так же, как Microsoft для своей небольшой демонстрации MediaElement: обрабатывать все в коде позади.
http://msdn.microsoft.com/en-us/library/ms748248.aspx
person
GameAlchemist
schedule
04.08.2012
да. Я поставил Minimum=0 Maximum={Binding ElementName=mediaElement, Path=mediaElement.NaturalDuration.TimeSpan.TotalMilliseconds} , но Value={Binding ElementName=mediaElement, Path=Position.TotalMilliseconds} - я не могу поставить TotalMilliseconds, потому что это не так. не работает с TotalMilliseconds только для чтения... Можете ли вы объяснить мне, что я должен делать?
- person user1524578; 04.08.2012
И если я установил Minimum=0 Maximum={Binding ElementName=mediaElement, Path=mediaElement.NaturalDuration.TimeSpan} Value={Binding ElementName=mediaElement, Path=Position, Mode=TwoWay} - это не сработало((
- person user1524578; 04.08.2012
Извините, что поставил неправильный вопрос. Я хочу, чтобы Thumb of Slider также изменил свою позицию, когда воспроизводится mediaElement.
- person user1524578; 04.08.2012
OK. Но теперь, поскольку вы не хотите использовать таймеры, как бы вы это сделали? возможно, используя событие LayoutUpdated для обновления слайдера... может быть подходит для фильмов, но не для музыки... Но, кстати, почему бы не использовать таймер? например 5 раз в секунду это не замедлит работу приложения...
- person GameAlchemist; 04.08.2012
Я делаю это на своем ноутбуке, это хорошо, но батарея не работает, а иногда игра работает плохо. Как вы думаете, это произошло из-за того, что батарея не работает?
- person user1524578; 04.08.2012