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