Windows phone 7 Windows Phone 7中的数字时钟或计时器
我想在我的WP7应用程序中显示一个数字计时器 实际上,我正在为一个活动编写一个应用程序 我想显示的是,它显示应用程序将在接下来的几天、几小时、几分钟和几秒钟内开始,并且时间将不断减少 上面的图片会让你知道我到底想要什么 我需要为它做些什么。 任何API或内置控件都可以帮助我,或者我需要处理它 如果没有现成的建议,我们将欣然接受你的建议Windows phone 7 Windows Phone 7中的数字时钟或计时器,windows-phone-7,windows-phone-7.1,Windows Phone 7,Windows Phone 7.1,我想在我的WP7应用程序中显示一个数字计时器 实际上,我正在为一个活动编写一个应用程序 我想显示的是,它显示应用程序将在接下来的几天、几小时、几分钟和几秒钟内开始,并且时间将不断减少 上面的图片会让你知道我到底想要什么 我需要为它做些什么。 任何API或内置控件都可以帮助我,或者我需要处理它 如果没有现成的建议,我们将欣然接受你的建议 感谢并问候显示工作毕竟不应该是一个挑战,它只是Xaml,在blend中设计它应该不会占用您任何时间 至于获取日期和时间,系统范围的DateTime类与常规.net
感谢并问候显示工作毕竟不应该是一个挑战,它只是Xaml,在blend中设计它应该不会占用您任何时间 至于获取日期和时间,系统范围的DateTime类与常规.net中的类一样可用,“now”和“UtcNow”静态属性将为您提供此时的确切时间 然而,学习.net秒表课程有点棘手 它们不再位于系统名称空间中,因此已被移动到特定于电话的名称空间
在您的项目中,添加对Microsoft.Phone.dll的引用,然后您应该可以在代码中使用System.Diagnostics.Stopwatch类,其工作方式与桌面世界中的对应类相同。时钟应该很简单,只是一些文本。最大的问题是在项目中使用正确的字体,因为WP7没有内置数字字体。您可以将外部字体导入到项目中: 正如其他海报所说,更新显示所需的只是一个定时器每秒触发一次事件,或者可能是在睡眠循环中的后台工作线程,因为您应该能够获得更多的控制我使用了此代码 XAML 代码 对于我在此代码中使用的字体,请使用以下链接:
你已经走了多远?你试过什么?我现在做的是,我有地方文本块,我正在用定时器更新它们。试试这个。。。
<TextBlock x:Name="txtClockDays" Text="66:" Grid.Row="1" Grid.Column="0" TextAlignment="Center" FontFamily="fonts/digital-7.ttf#Digital-7" FontSize="32"></TextBlock>
<TextBlock x:Name="txtClockHours" Text="06:" Grid.Row="1" Grid.Column="1" TextAlignment="Center" FontFamily="fonts/digital-7.ttf#Digital-7" FontSize="32"></TextBlock>
<TextBlock x:Name="txtClockMinutes" Text="30:" Grid.Row="1" Grid.Column="2" TextAlignment="Center" FontFamily="fonts/digital-7.ttf#Digital-7" FontSize="32"></TextBlock>
<TextBlock x:Name="txtClockSeconds" Text="15" Grid.Row="1" Grid.Column="3" TextAlignment="Center" FontFamily="fonts/digital-7.ttf#Digital-7" FontSize="32"></TextBlock>
<TextBlock x:Name="txtDays" Text="Days" Grid.Row="2" Grid.Column="0"></TextBlock>
<TextBlock x:Name="txtHours" Text="Hourss" Grid.Row="2" Grid.Column="1"></TextBlock>
<TextBlock x:Name="txtMinutes" Text="Minutes" Grid.Row="2" Grid.Column="2"></TextBlock>
<TextBlock x:Name="txtSeconds" Text="Secondss" Grid.Row="2" Grid.Column="3"></TextBlock>
int diffDays, diffHours, diffMinutes, diffSeconds;
System.Windows.Threading.DispatcherTimer dt = new System.Windows.Threading.DispatcherTimer();
public HomeScreen()
{
//string mDate, mHours, mMinutes, mSeconds;
InitializeComponent();
dt.Interval = new TimeSpan(0, 0, 0, 1);
dt.Tick += new EventHandler(dt_Tick);
DateTime d1= DateTime.Now;
DateTime d2 = new DateTime(2012, 1, 15, 10, 45, 00);
TimeSpan span = d2.Subtract(d1);
diffSeconds = span.Seconds;
diffMinutes = span.Minutes;
diffHours = span.Hours;
diffDays = span.Days;
txtClockDays.Text = diffDays.ToString();
txtClockHours.Text = diffHours.ToString();
txtClockMinutes.Text = diffMinutes.ToString();
txtClockSeconds.Text = diffSeconds.ToString();
dt.Start();
}
void dt_Tick(object sender, EventArgs e)
{
if (diffSeconds <= 0)
{
diffSeconds = 59;
if (diffMinutes <= 0)
{
diffMinutes = 59;
if (diffHours <= 0)
{
diffHours = 59;
if (diffDays <= 0)
{
diffDays = 0;
diffHours = 0;
diffMinutes = 0;
diffSeconds = 0;
dt.Stop();
}
else
{
diffDays = diffDays - 1;
}
}
else
{
diffHours = diffHours - 1;
}
}
else
{
diffMinutes = diffMinutes - 1;
}
}
else
{
diffSeconds = diffSeconds - 1;
}
//Dispalying the timer
if (diffSeconds < 10)
{
txtClockSeconds.Text = "0" + diffSeconds.ToString();
}
else
{
txtClockSeconds.Text = diffSeconds.ToString();
}
if (diffMinutes < 10)
{
txtClockMinutes.Text = "0" + diffMinutes.ToString();
}
else
{
txtClockMinutes.Text = diffMinutes.ToString();
}
if (diffHours < 10)
{
txtClockHours.Text = "0" + diffHours.ToString();
}
else
{
txtClockHours.Text = diffHours.ToString();
}
if (diffDays < 10)
{
txtClockDays.Text = "0" + diffDays.ToString();
}
else
{
txtClockDays.Text = diffDays.ToString();
}
}
private void btnRacenevents_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/TestPivot.xaml", UriKind.RelativeOrAbsolute));
}