uwp开发:Slider控件和MediaElement绑定,实现拖动播放。

1、实现原理:

Slider拖动时,Value值改变,MediaElement播放时,Position值改变。所以,只需将Slider的Value属性和MediaElement的Position属性进行绑定即可。

2、实现方法:

Slider的Value属性是double类型的,而MediaElement的Position属性是Timespan类型的,要绑定这两种不同类型的的话,就要用到Converter了,即值转换器。关于值转换器,可以百度,或者看IT追梦圆我写的这篇文章:数据绑定——值转换器 的简单使用

3、实现过程:

写一个值转换器类:

 class MusicConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            return ((TimeSpan)value).TotalSeconds;
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            return TimeSpan.FromSeconds((double)value);
        }
    }

这里注意的是,我是在Slider的Value属性上绑定Position的,这样的话,这个Value就是TimeSpan类型的,我们将它转为double类型,所以直接返回它的TotalSeconds,即总秒数即可。
下来,回到View界面:实现如下绑定。


到这里,还没完,因为我们需要将Slider的Value值和MediaElement播放的总秒数对应起来,这样才能实现百分比进度。所以,需要获取媒体播放的总时长,要注意的是,播放时长需要在MediaElement的MediaOpened事件中获取,因为在这个事件触发之前,系统是获取不到播放时长的。在该事件中将Slider的Maximum和播放总时间对应起来即可。

 private void me_MediaOpened(object sender, RoutedEventArgs e)
        {
          sld.Maximum = me.NaturalDuration.TimeSpan.TotalSeconds;
        }

这样绑定就完成了。拖动Slider,实现播放相应进度。喜欢uwp开发的同学可加群:193148992 共同学习交流。

——IT追梦圆

时间: 2024-08-08 13:45:45

uwp开发:Slider控件和MediaElement绑定,实现拖动播放。的相关文章

Windows UWP开发系列 – 控件默认样式

今天用一个Pivot控件的时候,想修改一下它的Header样式,却发现用Blend和VS无法导出它的默认样式了,导致无法下手,不知道是不是Blend的bug. 在网上搜了一下,在MSDN上还是找到了它的默认样式的,位置如下:https://msdn.microsoft.com/en-us/library/windows/apps/mt299142.aspx.其它的控件默认样式这个地址上也有,如果有需要的可以查询一下.

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取)

可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 分类: SharePoint2011-12-23 14:44 1584人阅读 评论(0) 收藏 举报 文档sharepointurl测试stringforms 可视化webpart基础开发——TreeView控件读取文档库中的所有文件夹和文件(递归方法读取) 1.在部署的sharepoint网站中新建一个名为“测试文档库”的文档库,并添加各级的子文件夹和子文件,用于测试 2.在VS2010中新建空

Cocos2d-X中的Slider控件

Slider控件事实上就是滑块控件,经常使用于音乐中的音量控制,在Windows编程中开发音乐播放器就须要用到滑块控件控制音量 首先在project文件夹下的Resource文件夹中放 在Skider.h加入以下的代码 #ifndef __Slider_H__ #define __Slider_H__ #include "cocos2d.h" #include "cocos-ext.h" USING_NS_CC; USING_NS_CC_EXT; class Sli

一些基于jQuery开发的控件

基于jQuery开发,非常简单的水平方向折叠控件.主页:http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-accordion.html (无法找到)下载:http://letmehaveblog.blogspot.com/2007/10/haccordion-simple-horizontal-accordion.html 示例:http://letmehaveblog.blogspot.com/2007

用swift开发仪表盘控件(一)

苹果swift刚刚推出不久,接触到这个语言是一个偶然的机会,无聊之余随便看了下它的语法: 瞬间就被感动了,switch 中居然大胆淘汰了break,完全是反人类的做法,其他语言没这么大胆和聪明,基本上switch, 都要搭配一大堆break(没有开发者考虑过繁琐性).因为99%的时候要使用break,所以苹果干脆就省略了.当然如果你要穿越的话可以用fallthrough.swift的优点还非常多此处省略1000字...... 可以在下面的地址下载控件(毫无保留,随便使用) http://down

C#开发ActiveX控件

昨天写了篇博客<Winform 程序嵌入WPF程序 并发送消息>,没有说明为什么要嵌入WPF程序,那么今天就来唠叨唠叨其中的一个使用场景,开发ActiveX控件 首先,新建一个类库工程HuaYun.ActiveX,右键工程属性,在“应用程序”页,点击“程序集信息”按钮,在弹出的窗体里勾选“使程序集COM可见”,具体操作如下图 第二步,切换到“生成”的选项卡,勾选“为COM互操作注册”,如下图 第三步,在AssemblyInfo.cs里添加[assembly: AllowPartiallyTru

java android布局里的控件值 反射绑定给实体类,实体类绑定给控件,表单提交绑定很有用

注意了:根据实际情况,添加实体里字段的类型,控件类型的判断才可使用.这里控件只有TextView EditText 实体类字段只有String int类型,带值的控件添加tag ,值和实体类的字段值一致 package ice.ui.service; import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import jav

IOS学习资源收集--开发UI控件相关

收集的一些本人了解过的iOS开发UI控件相关的代码资源(本文持续补充更新) 内容大纲: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 2.计时相关的自定义UILabel控件 正文: 1.本人在github上也上传了我分装好的一些可重复利用的UI控件 示例: 网址:https://github.com/HeYang123456789/UIView 2.计时相关的自定义UILabel控件 网址:https://github.com/mineschan/MZTimerLabel

重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame

[源码下载] 重新想象 Windows 8.1 Store Apps (79) - 控件增强: MediaElement, Frame 作者:webabcd介绍重新想象 Windows 8.1 Store Apps 之控件增强 MediaElement - 播放视频或音频的控件 Frame - 框架控件,用于导航内容 示例1.演示 MediaElement 的新特性MediaElementDemo.xaml <Page x:Class="Windows81.Controls.MediaEl