簡體   English   中英

DragStarted事件不在UWP滑塊中-C#

[英]DragStarted event is not getting in UWP Slider - c#

我想根據拖動滑塊的數量來更改視頻位置。 這樣我想使用DragStarted和DragCompleted事件。 但是它顯示“本地屬性'Dragstarted'只能應用於從'Thumb'派生的類型”。 如何將其包含在我的應用程序中?

 <Slider Name="timelineSlider" Thumb.DragCompleted= "timelineSlider_DragCompleted" DragStarting="timelineSlider_DragStarting" DragOver="timelineSlider_DragOver" Width="300" />

還發現有DragStarting和DragOver事件。 它具有Dragstarted和DragCompleted事件的相同功能嗎? 不幸的是,拖動滑塊時,不會啟動DragStarting和DragOver事件。

您可以嘗試使用SliderManipulationStartedManipulationCompleted事件。

 <Slider ManipulationCompleted="Slider_ManipulationCompleted" ManipulationMode="All" ManipulationStarted="Slider_ManipulationStarted"/>

如果要處理諸如應用程序代碼中的UI元素中的ManipulationStarted之類的操作事件,則必須將ManipulationMode設置為SystemNone以外的值。

private void Slider_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
    var slide= sender as Slider;
    Debug.WriteLine(slide.GetType().ToString());
    Debug.WriteLine(slide.Value+ ">>Slider_ManipulationCompleted");
}

private void Slider_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
    var slide = sender as Slider;
    Debug.WriteLine(slide.GetType().ToString());
    Debug.WriteLine(slide.Value+ "Slider_ManipulationStarted");
}

您可以更輕松地使用ValueChanged事件查看Slider位置的變化:

<Slider x:Name="Slider" ValueChanged="Slider_OnValueChanged" />

您可以使用e.NewValue獲取滑塊的新值,並使用e.OldValue獲取先前的位置。

private void Slider_OnValueChanged(object sender, RangeBaseValueChangedEventArgs e)
{
    Debug.WriteLine($"Slider moved from {e.OldValue} to {e.NewValue}");
}

PointerCaptureLost在UWP App中效果很好。

考試XAML:

<Slider x:Name="SeekSlider" PointerCaptureLost="SeekSlider_PointerCaptureLost"/>

示例C#:

private void SeekSlider_PointerCaptureLost(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
    Slider slider = sender as Slider;
    if (slider != null)
    {
        //mediaPlayer.Position = (float)slider.Value;
    }
}

這個對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM