Click here to Skip to main content
15,881,455 members
Please Sign up or sign in to vote.
3.00/5 (1 vote)
Hello, i need to build an app that use a countdown (Years, Days, Hour, Minutes, Seconds). I've tried to write a code and i succeed to calculate the time, but when i try to put this time as a string in a texblock, he is not updating. Can anyone help me to set the textblock to update himself ?
Notice: I'm a beginner in C# and Metro App's. And sorry for my bad english.

C#
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;


namespace Christmas_Countdown
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
        }

        private void Button_Click_1(object sender, RoutedEventArgs e)
        {

            DispatcherTimer t = new DispatcherTimer();
            DateTime endtime = new DateTime(2012, 12, 25, 0, 0, 0);
            DateTime now = DateTime.Now;
            t.Interval = endtime - now;
            TimeSpan ts = t.Interval;
            t.Start();

            string countDown = string.Format("{0} Days, {1} Hours, {2} Minutes, {3} Seconds til Christmas.", t.Interval.Days, t.Interval.Hours, t.Interval.Minutes, t.Interval.Seconds);
            Day_TxtBlk.Text = countDown;
        }

        private void Day_TxtBlk_Loaded(object sender, RoutedEventArgs e)
        {
            
        }



    }
}
Posted

1 solution

I found the solution to my problem.

C#
void t_Tick(object sender, object e)
        {
            TimeSpan ts = endtime.Subtract(DateTime.Now);

            string countdowndays = ts.Days.ToString();
            daytxtblk.Text = countdowndays;

            string countdownhours = ts.Hours.ToString();
            hourstxtblk.Text = countdownhours;

            string countdownminutes = ts.Minutes.ToString();
            minutetxtblk.Text = countdownminutes;

            string countdownseconds = ts.Seconds.ToString();
            sectxtblk.Text = countdownseconds;
        }


        private void christmas_2012_Click(object sender, RoutedEventArgs e)
        {
            

            if (this.IsEnabled)
            {
                txtboxchr.Visibility = Visibility.Visible;
                txtboxhours.Visibility = Visibility.Visible;
                txtboxminutes.Visibility = Visibility.Visible;
                txtboxseconds.Visibility = Visibility.Visible;

                daytxtblk.Visibility = Visibility.Visible;
                hourstxtblk.Visibility = Visibility.Visible;
                minutetxtblk.Visibility = Visibility.Visible;
                sectxtblk.Visibility = Visibility.Visible;
            }
           

            t = new DispatcherTimer();
            endtime = new DateTime(2012, 12, 25, 0, 0, 0);
            
            if (DateTime.Now.Year > endtime.Year)
            {
                t.Stop();
                txtboxchr.Visibility = Visibility.Collapsed;
                txtboxhours.Visibility = Visibility.Collapsed;
                txtboxminutes.Visibility = Visibility.Collapsed;
                txtboxseconds.Visibility = Visibility.Collapsed;

                daytxtblk.Visibility = Visibility.Collapsed;
                hourstxtblk.Visibility = Visibility.Collapsed;
                minutetxtblk.Visibility = Visibility.Collapsed;
                sectxtblk.Visibility = Visibility.Collapsed;
                pleasesetdat();
            }
            else 
            {
                t.Interval = new TimeSpan(1000);
                TimeSpan ts = endtime.Subtract(DateTime.Now);
                t.Tick += t_Tick;
                t.Start();
            }
        }
 
Share this answer
 
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900