2016年

6月

14日

Xamarin.Froms  Clock Digital

DateTimeを使い日時時間を表示します。
一定間隔で何かを実行させたい場合や、指定した時間に実行させたい場合などに使用します。

Android Windows Phone エミレーター表示

ファイル --> 新規作成  --> プロジェクト(P)...  --> Cross-Platform --> Xamarin-Forms で作成

DigitalClockPage01

DigitalClockPage.cs 追加

 DotMatrixClockPage.cs の書き換え

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Xamarin.Forms;

namespace DigitalClockPage01
{
    public partial class DigitalClockPage : ContentPage
    {
        public DigitalClockPage()
        {
            BackgroundColor = Color.Silver;

            // 年月日ラベル
            Label clockLabel01 = new Label
            {
                TextColor = Color.White,
            };

            // 時分秒ラベル
            Label clockLabel02 = new Label
            {
                TextColor = Color.White,
            };

            Content = new StackLayout
            {
                // スペース
                Spacing = 10,

                // 縦上 上:Start 中央:Center 下:End
                VerticalOptions = LayoutOptions.Center,

                // 横 左:Start 中央:Center 右:End
                HorizontalOptions = LayoutOptions.Center,

                // Vertical:縦並び Horizontal:横並び
                Orientation = StackOrientation.Vertical,

                Children = { clockLabel01, clockLabel02 }
            };


            // ページのSizeChangedイベントを処理
            SizeChanged += (object sender, EventArgs args) =>
            {
                // ページ幅のフォントサイズを縮小
                // (表示された文字列内の11文字に基づきます)。
                if (Width > 0)
                    // 年月日ラベル
                    clockLabel01.FontSize = Width / 6;
                    // 時分秒ラベル
                    clockLabel02.FontSize = Width / 6;
            };

            // タイマーを起動
            Device.StartTimer(TimeSpan.FromSeconds(1), () =>
            {
                // ラベルのTextプロパティを設定します。
                // 年月日ラベル
                clockLabel01.Text = DateTime.Now.ToString("yyyy MM dd");
                // 時分秒ラベル
                clockLabel02.Text = DateTime.Now.ToString("h:mm:ss tt");
                return true;
            });
        }
    }
}

App.cs の書き換え

App.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Xamarin.Forms;

namespace DigitalClockPage01
{
    public class App : Application
    {
        public App()
        {
            // The root page of your application
            MainPage = new DigitalClockPage();            
        }
    }
}

 

目 次