Animation 基于UWP的摄像机定时器动画

Animation 基于UWP的摄像机定时器动画,animation,timer,uwp,Animation,Timer,Uwp,我正在开发一个UWP应用程序,我的一个页面实际上是供用户拍照的。在页面中,我有定时器供用户在拍照前选择 然而,我希望有一个计时器显示,在相机屏幕上倒计时,这样用户就知道在拍照之前还有多少时间让他们准备 你知道我该怎么做吗?谢谢大家! 为了以防万一,以下是我的计时器和拍照按钮代码: private async void PhotoButton_Click(object sender, RoutedEventArgs e) { //If preview is not runn

我正在开发一个UWP应用程序,我的一个页面实际上是供用户拍照的。在页面中,我有定时器供用户在拍照前选择

然而,我希望有一个计时器显示,在相机屏幕上倒计时,这样用户就知道在拍照之前还有多少时间让他们准备

你知道我该怎么做吗?谢谢大家!

为了以防万一,以下是我的计时器和拍照按钮代码:

private async void PhotoButton_Click(object sender, RoutedEventArgs e)
    {
        //If preview is not running, no preview frames can be acquired
        if (!_isPreviewing) return;

        await Task.Delay(TimeSpan.FromSeconds(_seconds));
        await TakePhotoAsync();
        await GetPreviewFrameAsSoftwareBitmapAsync();

        PreviewFrameBackground.Visibility = Visibility.Visible;

    }

private void Timer_3sec_Click(object sender, RoutedEventArgs e)
    {
        Timer_5sec.Opacity = 0.2;
        Timer_7sec.Opacity = 0.2;
        Timer_3sec.Opacity = 1.0;
        _seconds = 3;


    }
    private void Timer_5sec_Click(object sender, RoutedEventArgs e)
    {
        Timer_3sec.Opacity = 0.2;
        Timer_7sec.Opacity = 0.2;
        Timer_5sec.Opacity = 1.0;
        _seconds = 5;

    }

    private void Timer_7sec_Click(object sender, RoutedEventArgs e)
    {
        Timer_3sec.Opacity = 0.2;
        Timer_5sec.Opacity = 0.2;
        Timer_7sec.Opacity = 1.0;
        _seconds = 7;

    }
你可以用a来解决你的问题。 这里有一个小的代码示例,您可以如何做到这一点,该示例不显示如何捕获或显示剩余的秒数,只是为了计算它们

类参数:

private int _startTime;
private DispatcherTimer _timer = new DispatcherTimer();
方法:

private void StartTimer()
        {
            _timer.Interval = TimeSpan.FromMilliseconds(500);
            _timer.Tick += Timer_Tick;
            _startTime = Environment.TickCount;
            _timer.Start();
        }

private void Timer_Tick(object sender, object e)
        {
            var remainingSeconds = _seconds - TimeSpan.FromMilliseconds(Environment.TickCount - _startTime).Seconds;

            if(remainingSeconds <= 0)
            {
                _timer.Stop();
                _timer.Tick -= Timer_Tick;
                timerText.Text = "0 Seconds";
                //Capture Image
            } else
            {
                timerText.Text = "" + remainingSeconds + " Seconds";
            }

        }

设置_秒后,您需要在单击方法中调用StartTimer方法。

a呢?我以前从未使用过Dispatcher。。。如果你展示一个简单的演示,有可能吗?我会非常感激的。非常感谢。检查下面我的答案非常感谢!但是,如何显示剩余的秒数?这就是我发布这个问题的主要原因…要么你用剩下的秒数制作图片并将它们加载到你的预览区域,要么你制作一个文本框,在其中显示它们,我是这样为textblock写的吗?timer.Text=remainingSeconds.ToString;你不需要ToString。你可以这样做:timer.Text=+remainingSeconds+Seconds,或者类似的东西我的坏。。。剩余秒数的计算已交换。。。见我编辑的答案