相关疑难解决方法(0)

UWP滑块滑动后

我正在使用滑块来控制正在播放的 MediaElement 的位置。我已经实现了 ValueChanged 事件来同步滑块的位置和值。因此,当我拖动 Thumb 时,MediaElement 的位置也会发生变化。然而,这会造成糟糕的用户体验。理想的情况应该是这样的,用户完成滑动后,MediaElement 跳转到最终位置。所以我正在寻找像 AfterSliding 这样的事件/处理程序。

我见过使用 OnThumbDragCompleted 等解决方案。但是,这些问题是关于 WPF 的,我在 UWP 中找不到此类问题。有人有解决方法吗?

当前的:

    private void ProgressBar_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
    {
        MediaPlayer.Position = TimeSpan.FromSeconds(e.NewValue);
        LeftTimeTextBlock.Text = MusicDurationConverter.ToTime((int)e.NewValue);
    }
Run Code Online (Sandbox Code Playgroud)

预期的:

    private void ProgressBar_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
    {
        if (!isDragging || slidingFinished) MediaPlayer.Position = TimeSpan.FromSeconds(e.NewValue);
        LeftTimeTextBlock.Text = MusicDurationConverter.ToTime((int)e.NewValue);
    }
Run Code Online (Sandbox Code Playgroud)

- -更新 - -

我有一个每秒滴答一次的计时器,但是当我点击滑块(而不是拇指)区域时,点击的事件并不总是被触发,因此拇指会在点击的位置和新位置之间来回移动。我该如何解决这个问题,以便当用户仍然握住拇指时,它保持在单击的位置?我想点击的事件可能不是我应该使用的。

    public void Tick()
    {
        if (ShouldUpdate && !SliderClicked)
        {
            MediaSlider.Value = MediaControl.Player.PlaybackSession.Position.TotalSeconds;
        }
        SliderClicked = false;
    }

    private void MediaSlider_Tapped(object sender, TappedRoutedEventArgs e) …
Run Code Online (Sandbox Code Playgroud)

c# xaml slider uwp

5
推荐指数
1
解决办法
2233
查看次数

标签 统计

c# ×1

slider ×1

uwp ×1

xaml ×1