不过Mediaplay控件我不打算再写下去了,因为微软公司在ASPNETFutures组件包里提供了asp:media组件,这个组件可以用在Silverlight页面里,功能比我写的要强大,还支持换肤。
好了,如何通过拖动进度条来
如果找进度条和 MediaElement 的Position之间的关系呢。我们看下面的图:
| <-- left --> | currentPosition: x |
|<------------------------------------totalLength------------------------->|
中间滚动条的位置left和滚动槽的总长度totalLength就对应着
再讲一个知识点:获取所播放的媒体的总播放时间用MediaElement的NaturalDuration属性。
所以我们可以用这样的公式来表示:
以下是引用片段: Position = (left/totalLength)*NaturalDuration |
好了,
MouseLeftButtonDown,MouseMove,MouseLeftButtonUp.也就是说当你用鼠标拖放一个东西的时候,首先要按下鼠标左键,然后拖放,拖放到指定的位置后就放开鼠标左键,从
拖放的时候还要注意的一点是:为了捕获鼠标,我们要用到CaptureMouse()方法,放开鼠标左键的时候我们要释放鼠标ReleaseMouseCapture();
核心代码如下:
以下是引用片段: //点下鼠标左键 ![]() ![]() { ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() { ![]() { ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() { ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |