前台页面:
<navigation:Page x:Class="dataBind.BindConvert"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:dataBind"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
d:DesignWidth="640" d:DesignHeight="480"
Title="BindConvert Page">
<UserControl.Resources>
<local:timeSpanConverter x:Key="ct"></local:timeSpanConverter>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" ShowGridLines="True" >
<Grid.RowDefinitions>
<RowDefinition Height="11*"></RowDefinition>
<RowDefinition Height="1*"></RowDefinition>
</Grid.RowDefinitions>
<MediaElement Name="me1" AutoPlay="True" Source="mv/1.mp4" MediaOpened="MediaElement_MediaOpened"></MediaElement>
<Slider Name="mySlider" Grid.Row="1" Value="{Binding Position,Mode=TwoWay,Converter={StaticResource ct}}" DataContext="{Binding ElementName=me1}"></Slider>
</Grid>
</navigation:Page>
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Navigation;
namespace dataBind
{
public partial class BindConvert : Page
{
public BindConvert()
{
InitializeComponent();
}
// 当用户导航到此页面时执行。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
}
private void MediaElement_MediaOpened(object sender, RoutedEventArgs e)
{
double total = me1.NaturalDuration.TimeSpan.TotalMilliseconds;
mySlider.Maximum = total;
}
}
}
我们之前要事先声明的转换类:
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;
namespace dataBind
{
public class timeSpanConverter :IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
TimeSpan ts = (TimeSpan)value;
return ts.TotalMilliseconds;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double d = (double)value;
return TimeSpan.FromMilliseconds(d);
}
}
}
原文链接: http://blog.csdn.net/mypc2010/article/details/7951618