2015-02-09 62 views
0

我想为Windows Phone做一个小音乐播放器。我在播放器中添加了滑块功能。音乐播放时滑块可以正常工作。但我想根据我拖动滑块的方式更改媒体,但找不到任何相关事件。我尝试过更改价值,但没有帮助。我也试过Thumb.Dragstarted事件,但我的Visual Studio提供了一个错误。这是迄今为止代码:Thumb.DragStarted事件不工作在视觉工作室2013

XAML:

<Slider AllowDrop="True" x:Name="sld1" Thumb.DragStarted="sld1_DragStarted" HorizontalAlignment="Left" Margin="58,213,0,0" VerticalAlignment="Top" Width="351" ValueChanged="sld1_ValueChanged"/> 
<MediaElement x:Name="bleep" Source="abcd.wav" AutoPlay="False" Visibility="Collapsed" MediaEnded="bleep_MediaEnded"/> 

C#:

public Page1() 
    { 
    DispatcherTimer timer = new DispatcherTimer(); 
    timer.Interval = TimeSpan.FromSeconds(1); 
    timer.Tick += timer_Tick; 
    timer.Start(); 
    } 
private bool userIsDraggingSlider = false; 
    private void timer_Tick(object sender, EventArgs e) 
    { 
     if ((bleep.Source != null) && (bleep.NaturalDuration.HasTimeSpan) && (!userIsDraggingSlider)) 
     { 
      sld1.Minimum = 0; 
      sld1.Maximum = bleep.NaturalDuration.TimeSpan.TotalSeconds; 
      sld1.Value = bleep.Position.TotalSeconds; 
     } 
    } 

    private void sld1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) 
    { 
     tm_passed.Text = TimeSpan.FromSeconds(sld1.Value).ToString(@"mm\:ss"); 
} 
private void sld1_DragStarted(object sender, DragStartedEventArgs e) 
      { 
        userIsDraggingSlider = true; 
      } 

private void sld1_DragCompleted(object sender, DragCompletedEventArgs e) 
      { 
        userIsDraggingSlider = false; 
        bleep.Position = TimeSpan.FromSeconds(sld1.Value); 
      } 

但由于DragCompleted和DragStarted事件不起作用我无法将拖动功能提供给滑块。

+0

你得到的错误是什么? – Kulasangar 2015-02-10 11:45:42

+0

它说:“本地属性'dragstarted'只能应用于派生自'Thumb'的类型@Kulasangar – decoders15 2015-02-10 13:27:42

回答

0

我从Thumbclass中发现的是,您不能简单地在您的Slider内添加Thumb.DragStarted="sld1_DragStarted。您只能为Thumb控件添加那种event。请参阅文章底部的示例代码。

+0

okk。得到它了。但是,我应该如何提供我想要的滑块功能,以便根据拖动滑块的多少来改变媒体位置? @Kulasangar – decoders15 2015-02-10 14:20:11

+0

你可以试试'Converter'类:http://blogs.msdn.com/b/pakistan/archive/2013/08/28/control-position-of-the-song-using-slider-bar- in-windows-phone-using-converter-class.aspx&http://stackoverflow.com/questions/22115537/windows-phone-8-slider-binding-works-only-after-a-click – Kulasangar 2015-02-10 15:43:22