如何设置图像保持行为的时间

本文关键字:时间 图像 何设置 设置 | 更新日期: 2023-09-27 18:20:00

我正在使用图像on_hold行为来执行任务。我用了一个定时器,在这个定时器中,我设置了5秒的时间,如果用户持有该图像5秒,页面将导航。现在我只想在用户按住图像5秒的情况下进行页面导航,而不是在任何情况下,比如用户按住图像1秒或2秒后删除。我如何设置图像on_hold的计时器?

Public mainpage()
{ 
    InitializeComponent();
    timer = new DispatcherTimer();
    timer.Interval = TimeSpan.FromSeconds(1);
    timer.Tick += (s, e) =>
    {
        var frame = App.Current.RootVisual as PhoneApplicationFrame;
        frame.Navigate(new Uri("/Second Page.xaml", UriKind.Relative));
        timer.Stop();
    };
}
private void Image_Hold(object sender, System.Windows.Input.GestureEventArgs e)
{     
    // want to set timer here either for story board or for on_hod behaviour
    myStoryboard.Begin();
    NewMedia.Play();
    tick();
}
private void tick()
{
    counter--;
    if (counter <=0)
    {
        timer.Start();
        counter = 5;
    }
    else
    {
        counter = 5;
    }
}

如何设置图像保持行为的时间

您可以尝试组合使用ManipulationStarted和ManupopulationCompleted事件,而不是Hold事件。将Timer间隔设置为5秒:

timer.Interval = TimeSpan.FromSeconds(5);

当用户开始持有图像时,启动Timer:

private void Image_ManipulationStarted(object sender, ManipulationCompletedEventArgs e)
{
    myStoryboard.Begin();
    NewMedia.Play();
    timer.Start();
}

然后,如果用户在5秒内停止持有图像,则停止Timer:

private void Image_ManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
    timer.Stop();
}