Age Tracker: Source Code
July 7, 2012Let’s start with the MainPage.xaml file:
<phone:PhoneApplicationPage xmlns:my="clr-namespace:Microsoft.Advertising.Mobile.UI;assembly=Microsoft.Advertising.Mobile.UI"
x:Class="AgeTracker.WP.Views.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls"
shell:SystemTray.IsVisible="True" Loaded="PhoneApplicationPage_Loaded">
<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel>
<controls:Pivot Name="MainPagePivot" Title="AGE TRACKER">
<controls:PivotItem Name="Person1PivotItem">
<!--TitlePanel contains the name of the application and page title-->
<StackPanel Orientation="Vertical">
<TextBlock Height="41"
HorizontalAlignment="Center"
TextAlignment="Center"
Margin="0,00,0,10"
Name="person1BirthDateTextBlock"
Text=""
Width="400"
Foreground="{StaticResource PhoneAccentBrush}"
FontSize="{StaticResource PhoneFontSizeMedium}" />
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<TextBlock Text="Elapsed" FontSize="{StaticResource PhoneFontSizeLarge}" Foreground="{StaticResource PhoneAccentBrush}"/>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1ElapsedYearsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Years" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1ElapsedMonthsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Months" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1ElapsedDaysTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Days" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1ElapsedHoursTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Hours" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1ElapsedMinutesTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Minutes" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1ElapsedSecondsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Seconds" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
</StackPanel>
<StackPanel Orientation="Vertical">
<TextBlock Text="Total" FontSize="{StaticResource PhoneFontSizeLarge}" Foreground="{StaticResource PhoneAccentBrush}"/>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1YearsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Years" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1MonthsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Months" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1DaysTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Days" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1HoursTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Hours" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1MinutesTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Minutes" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person1SecondsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Seconds" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
</StackPanel>
</StackPanel>
</StackPanel>
</controls:PivotItem>
<controls:PivotItem Name="Person2PivotItem">
<!--TitlePanel contains the name of the application and page title-->
<StackPanel Orientation="Vertical">
<TextBlock Height="41"
HorizontalAlignment="Center"
TextAlignment="Center"
Margin="0,00,0,10"
Name="person2BirthDateTextBlock"
Text=""
Width="400"
Foreground="{StaticResource PhoneAccentBrush}"
FontSize="{StaticResource PhoneFontSizeMedium}" />
<StackPanel Orientation="Horizontal" Name="Person2Stackpanel" Visibility="Collapsed">
<StackPanel Orientation="Vertical">
<TextBlock Text="Elapsed" FontSize="{StaticResource PhoneFontSizeLarge}" Foreground="{StaticResource PhoneAccentBrush}"/>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2ElapsedYearsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Years" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2ElapsedMonthsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Months" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2ElapsedDaysTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Days" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2ElapsedHoursTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Hours" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2ElapsedMinutesTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Minutes" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2ElapsedSecondsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Seconds" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
</StackPanel>
<StackPanel Orientation="Vertical">
<TextBlock Text="Total" FontSize="{StaticResource PhoneFontSizeLarge}" Foreground="{StaticResource PhoneAccentBrush}"/>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2YearsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Years" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2MonthsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Months" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2DaysTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Days" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2HoursTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Hours" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2MinutesTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Minutes" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person2SecondsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Seconds" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
</StackPanel>
</StackPanel>
<TextBlock Height="41"
HorizontalAlignment="Left"
Margin="6,26,0,0"
Name="textBlock2"
Text="Please enable this person in the settings."
VerticalAlignment="Top"
Width="446"
FontSize="24"
TextAlignment="Center"
TextWrapping="Wrap" />
</StackPanel>
</controls:PivotItem>
<controls:PivotItem Name="Person3PivotItem">
<!--TitlePanel contains the name of the application and page title-->
<StackPanel Orientation="Vertical">
<TextBlock Height="41"
HorizontalAlignment="Center"
TextAlignment="Center"
Margin="0,00,0,10"
Name="person3BirthDateTextBlock"
Text=""
Width="400"
Foreground="{StaticResource PhoneAccentBrush}"
FontSize="{StaticResource PhoneFontSizeMedium}" />
<StackPanel Orientation="Horizontal" Name="Person3Stackpanel" Visibility="Collapsed">
<StackPanel Orientation="Vertical">
<TextBlock Text="Elapsed" FontSize="{StaticResource PhoneFontSizeLarge}" Foreground="{StaticResource PhoneAccentBrush}"/>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3ElapsedYearsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Years" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3ElapsedMonthsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Months" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3ElapsedDaysTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Days" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3ElapsedHoursTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Hours" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3ElapsedMinutesTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Minutes" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3ElapsedSecondsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Seconds" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
</StackPanel>
<StackPanel Orientation="Vertical">
<TextBlock Text="Total" FontSize="{StaticResource PhoneFontSizeLarge}" Foreground="{StaticResource PhoneAccentBrush}"/>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3YearsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Years" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3MonthsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Months" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3DaysTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Days" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3HoursTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Hours" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3MinutesTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Minutes" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Name="Person3SecondsTextBlock" Text="0" Padding="20,10,5,10" FontSize="28" />
<TextBlock Text="Seconds" Padding="5,10,5,10" FontSize="28" />
</StackPanel>
</StackPanel>
</StackPanel>
<TextBlock Height="41"
HorizontalAlignment="Left"
Margin="6,26,0,0"
Name="textBlock3"
Text="Please enable this person in the settings."
VerticalAlignment="Top"
Width="446"
FontSize="24"
TextAlignment="Center"
TextWrapping="Wrap" />
</StackPanel>
</controls:PivotItem>
</controls:Pivot>
<my:AdControl Name="Ad1" Height="80" Width="480" Margin="0,50,0,0" />
</StackPanel>
</Grid>
</phone:PhoneApplicationPage>
And its corresponding MainPage.xaml.cs:
using System;
using System.Globalization;
using System.Windows;
using System.Windows.Threading;
using Itenso.TimePeriod;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using Microsoft.Phone.Tasks;
namespace AgeTracker.WP.Views
{
public partial class MainPage : PhoneApplicationPage
{
private readonly AppSettings _appSettings = new AppSettings();
// Constructor
public MainPage()
{
InitializeComponent();
// Add an Application Bar with a 'setting menu item.
ApplicationBar = new ApplicationBar();
ApplicationBar.IsMenuEnabled = true;
ApplicationBar.IsVisible = true;
ApplicationBar.Opacity = 1.0;
ApplicationBar.Mode = ApplicationBarMode.Minimized;
var settingsItem =
new ApplicationBarIconButton(new Uri("/Images/appbar.feature.settings.rest.png", UriKind.Relative));
var helpItem =
new ApplicationBarIconButton(new Uri("/Images/appbar.questionmark.rest.png", UriKind.Relative));
var shareItem = new ApplicationBarIconButton(new Uri("/Images/share.png", UriKind.Relative));
var rateItem = new ApplicationBarIconButton(new Uri("/Images/appbar.favs.rest.png", UriKind.Relative));
settingsItem.Text = "settings";
helpItem.Text = "help";
shareItem.Text = "share";
rateItem.Text = "rate";
settingsItem.Click += SettingsClick;
helpItem.Click += HelpClick;
shareItem.Click += TwitterItemOnClick;
rateItem.Click += RateItemOnClick;
ApplicationBar.Buttons.Add(shareItem);
ApplicationBar.Buttons.Add(settingsItem);
ApplicationBar.Buttons.Add(helpItem);
ApplicationBar.Buttons.Add(rateItem);
Ad1.ApplicationId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
Ad1.AdUnitId = "xxxxxxxx";
}
private void TwitterItemOnClick(object sender, EventArgs eventArgs)
{
try
{
ShareStatusTask shareStatusTask = new ShareStatusTask();
string message = string.Empty;
string name = string.Empty;
if (MainPagePivot.SelectedIndex == 0)
{
message = CalculateSinceBirth(_appSettings.Birthday1DateSetting,
_appSettings.Birthday1TimeSetting,
_appSettings.UseTime1CheckBoxSetting).GetDescription();
name = _appSettings.Birthday1NameSetting;
}
else if (MainPagePivot.SelectedIndex == 1)
{
if (_appSettings.UsePerson2CheckBoxSetting)
{
message = CalculateSinceBirth(_appSettings.Birthday2DateSetting,
_appSettings.Birthday2TimeSetting,
_appSettings.UseTime2CheckBoxSetting).GetDescription();
name = _appSettings.Birthday2NameSetting;
}
else
{
MessageBox.Show("Please enable this person before trying to share their age.", "Not Enabled.",
MessageBoxButton.OK);
return;
}
}
else if (MainPagePivot.SelectedIndex == 2)
{
if (_appSettings.UsePerson3CheckBoxSetting)
{
message = CalculateSinceBirth(_appSettings.Birthday3DateSetting,
_appSettings.Birthday3TimeSetting,
_appSettings.UseTime3CheckBoxSetting).GetDescription();
name = _appSettings.Birthday3NameSetting;
}
else
{
MessageBox.Show("Please enable this person before trying to share their age.", "Not Enabled.",
MessageBoxButton.OK);
return;
}
}
shareStatusTask.Status = name + " is " + message +
" old right now. \n\nSent by the Age Tracker app for Windows Phone.";
shareStatusTask.Show();
}
catch (InvalidOperationException ex)
{
//throw;
}
}
private void HelpClick(object sender, EventArgs eventArgs)
{
NavigationService.Navigate(new Uri("/Views/Help.xaml", UriKind.Relative));
}
private void RateItemOnClick(object sender, EventArgs eventArgs)
{
MarketplaceReviewTask rate = new MarketplaceReviewTask();
rate.Show();
}
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
Person1PivotItem.Header = _appSettings.Birthday1NameSetting;
if (_appSettings.UseTime1CheckBoxSetting)
{
person1BirthDateTextBlock.Text =
_appSettings.Birthday1DateSetting.ToString("dddd, MMMM dd yyyy", CultureInfo.CurrentCulture) +
_appSettings.Birthday1TimeSetting.ToString(" hh:mm tt", CultureInfo.CurrentCulture);
}
else
{
person1BirthDateTextBlock.Text = _appSettings.Birthday1DateSetting.ToString("dddd, MMMM dd yyyy",
CultureInfo.CurrentCulture);
}
if (_appSettings.UsePerson2CheckBoxSetting)
{
Person2PivotItem.Header = _appSettings.Birthday2NameSetting;
if (_appSettings.UseTime2CheckBoxSetting)
{
person2BirthDateTextBlock.Text =
_appSettings.Birthday2DateSetting.ToString("dddd, MMMM dd yyyy", CultureInfo.CurrentCulture) +
_appSettings.Birthday2TimeSetting.ToString(" hh:mm tt", CultureInfo.CurrentCulture);
}
else
{
person2BirthDateTextBlock.Text = _appSettings.Birthday2DateSetting.ToString("dddd, MMMM dd yyyy",
CultureInfo.
CurrentCulture);
}
SetUIElementVisibility(person2BirthDateTextBlock, true);
SetUIElementVisibility(textBlock2, false);
SetUIElementVisibility(Person2Stackpanel, true);
}
else
{
Person2PivotItem.Header = "Person 2";
SetUIElementVisibility(person2BirthDateTextBlock, false);
SetUIElementVisibility(textBlock2, true);
SetUIElementVisibility(Person2Stackpanel, false);
}
if (_appSettings.UsePerson3CheckBoxSetting)
{
Person3PivotItem.Header = _appSettings.Birthday3NameSetting;
if (_appSettings.UseTime3CheckBoxSetting)
{
person3BirthDateTextBlock.Text =
_appSettings.Birthday3DateSetting.ToString("dddd, MMMM dd yyyy", CultureInfo.CurrentCulture) +
_appSettings.Birthday3TimeSetting.ToString(" hh:mm tt", CultureInfo.CurrentCulture);
}
else
{
person3BirthDateTextBlock.Text = _appSettings.Birthday3DateSetting.ToString("dddd, MMMM dd yyyy",
CultureInfo.
CurrentCulture);
}
SetUIElementVisibility(person3BirthDateTextBlock, true);
SetUIElementVisibility(textBlock3, false);
SetUIElementVisibility(Person3Stackpanel, true);
}
else
{
Person3PivotItem.Header = "Person 3";
SetUIElementVisibility(person3BirthDateTextBlock, true);
SetUIElementVisibility(textBlock3, true);
SetUIElementVisibility(Person3Stackpanel, false);
}
var tmr = new DispatcherTimer();
tmr.Interval = TimeSpan.FromSeconds(1);
tmr.Tick += OnTimerTick;
tmr.Start();
}
private void OnTimerTick(object sender, EventArgs e)
{
// textBlock1.Text = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString();
UpdatePerson1UI(CalculateSinceBirth(_appSettings.Birthday1DateSetting, _appSettings.Birthday1TimeSetting,
_appSettings.UseTime1CheckBoxSetting));
UpdatePerson2UI(CalculateSinceBirth(_appSettings.Birthday2DateSetting, _appSettings.Birthday2TimeSetting,
_appSettings.UseTime2CheckBoxSetting));
UpdatePerson3UI(CalculateSinceBirth(_appSettings.Birthday3DateSetting, _appSettings.Birthday3TimeSetting,
_appSettings.UseTime3CheckBoxSetting));
}
private DateDiff CalculateSinceBirth(DateTime Date, DateTime Time, bool UseTime)
{
DateTime Birthday;
if (UseTime)
{
Birthday = new DateTime(Date.Year, Date.Month, Date.Day, Time.Hour, Time.Minute, 0);
}
else
{
Birthday = new DateTime(Date.Year, Date.Month, Date.Day, 0, 0, 0);
}
return new DateDiff(Birthday, DateTime.Now);
}
private void UpdatePerson1UI(DateDiff diff)
{
Person1YearsTextBlock.Text = diff.Years.ToString(CultureInfo.InvariantCulture);
Person1MonthsTextBlock.Text = diff.Months.ToString(CultureInfo.InvariantCulture);
Person1DaysTextBlock.Text = diff.Days.ToString(CultureInfo.InvariantCulture);
Person1HoursTextBlock.Text = diff.Hours.ToString(CultureInfo.InvariantCulture);
Person1MinutesTextBlock.Text = diff.Minutes.ToString(CultureInfo.InvariantCulture);
Person1SecondsTextBlock.Text = diff.Seconds.ToString(CultureInfo.InvariantCulture);
Person1ElapsedYearsTextBlock.Text = diff.ElapsedYears.ToString(CultureInfo.InvariantCulture);
Person1ElapsedMonthsTextBlock.Text = diff.ElapsedMonths.ToString(CultureInfo.InvariantCulture);
Person1ElapsedDaysTextBlock.Text = diff.ElapsedDays.ToString(CultureInfo.InvariantCulture);
Person1ElapsedHoursTextBlock.Text = diff.ElapsedHours.ToString(CultureInfo.InvariantCulture);
Person1ElapsedMinutesTextBlock.Text = diff.ElapsedMinutes.ToString(CultureInfo.InvariantCulture);
Person1ElapsedSecondsTextBlock.Text = diff.ElapsedSeconds.ToString(CultureInfo.InvariantCulture);
}
private void UpdatePerson2UI(DateDiff diff)
{
Person2YearsTextBlock.Text = diff.Years.ToString(CultureInfo.InvariantCulture);
Person2MonthsTextBlock.Text = diff.Months.ToString(CultureInfo.InvariantCulture);
Person2DaysTextBlock.Text = diff.Days.ToString(CultureInfo.InvariantCulture);
Person2HoursTextBlock.Text = diff.Hours.ToString(CultureInfo.InvariantCulture);
Person2MinutesTextBlock.Text = diff.Minutes.ToString(CultureInfo.InvariantCulture);
Person2SecondsTextBlock.Text = diff.Seconds.ToString(CultureInfo.InvariantCulture);
Person2ElapsedYearsTextBlock.Text = diff.ElapsedYears.ToString(CultureInfo.InvariantCulture);
Person2ElapsedMonthsTextBlock.Text = diff.ElapsedMonths.ToString(CultureInfo.InvariantCulture);
Person2ElapsedDaysTextBlock.Text = diff.ElapsedDays.ToString(CultureInfo.InvariantCulture);
Person2ElapsedHoursTextBlock.Text = diff.ElapsedHours.ToString(CultureInfo.InvariantCulture);
Person2ElapsedMinutesTextBlock.Text = diff.ElapsedMinutes.ToString(CultureInfo.InvariantCulture);
Person2ElapsedSecondsTextBlock.Text = diff.ElapsedSeconds.ToString(CultureInfo.InvariantCulture);
}
private void UpdatePerson3UI(DateDiff diff)
{
Person3YearsTextBlock.Text = diff.Years.ToString(CultureInfo.InvariantCulture);
Person3MonthsTextBlock.Text = diff.Months.ToString(CultureInfo.InvariantCulture);
Person3DaysTextBlock.Text = diff.Days.ToString(CultureInfo.InvariantCulture);
Person3HoursTextBlock.Text = diff.Hours.ToString(CultureInfo.InvariantCulture);
Person3MinutesTextBlock.Text = diff.Minutes.ToString(CultureInfo.InvariantCulture);
Person3SecondsTextBlock.Text = diff.Seconds.ToString(CultureInfo.InvariantCulture);
Person3ElapsedYearsTextBlock.Text = diff.ElapsedYears.ToString(CultureInfo.InvariantCulture);
Person3ElapsedMonthsTextBlock.Text = diff.ElapsedMonths.ToString(CultureInfo.InvariantCulture);
Person3ElapsedDaysTextBlock.Text = diff.ElapsedDays.ToString(CultureInfo.InvariantCulture);
Person3ElapsedHoursTextBlock.Text = diff.ElapsedHours.ToString(CultureInfo.InvariantCulture);
Person3ElapsedMinutesTextBlock.Text = diff.ElapsedMinutes.ToString(CultureInfo.InvariantCulture);
Person3ElapsedSecondsTextBlock.Text = diff.ElapsedSeconds.ToString(CultureInfo.InvariantCulture);
}
private void SetUIElementVisibility(UIElement control, bool visible)
{
if (visible)
{
control.Visibility = Visibility.Visible;
}
else
{
control.Visibility = Visibility.Collapsed;
}
}
private void SettingsClick(object sender, EventArgs e)
{
NavigationService.Navigate(new Uri("/Views/Settings.xaml", UriKind.Relative));
}
}
}
Comments are closed.