我有一個mediaElement
和一個slider
。
滑塊的最大值是視頻的持續時間(以秒爲單位)(例如,如果視頻爲2分鐘,則滑塊的值爲120)。更新mediaElement基於滑塊值
我想基於滑塊的值更新mediaElement.Position,但問題是我不想更新位置,直到用戶完成操縱該值。
所以我所做的是2個功能:
private void DurationSlider_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
SeekToMediaPosition();
}
如果用戶停止操作滑塊這一功能applys。
private void DurationSlider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
SeekToMediaPosition();
}
該函數適用於用戶在滑塊中單擊了不同值的情況。
問題是他們衝突。
操縱滑塊會改變的價值...
所以我所做的是添加了這個功能:
bool manipulating = false;
private void DurationSlider_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
manipulating = true;
}
,並在功能的ValueChanged我檢查是否manipulating = true
與否
解決一半問題 - 它不會在操作時改變視頻位置(直到我完成),但如果我單擊滑塊上的不同位置(不釋放鼠標)並繼續操作滑塊的值 - 它會將視頻位置更改爲我點擊的位置在滑塊上,然後再次改變到我結束操作的地方。
那麼最新錯誤?
我想在用戶釋放鼠標時更改視頻位置僅限。 我無法找到事件,激發我想要的...
您是否試過'Slider'的'ManipulationCompleted' /'PointerPressed' /'PointerReleased'事件? – Xyroid