macOS .NET MAUI タイマーを使った時計表示

Pocket

Visual Studio 17.3 Preview版 MAUIプロジェクトで Timerを使い XAMLのLabelに時計を表示する。

Visual Studio for 2022 Macは、下↓のURLからダウンロードできます。

https://visualstudio.microsoft.com/ja/vs/mac/

Preview版は、 現時点バージョン17.3で MAUIアプリの プロジェクトが作成できます。

新規プロジェクト作成 .NET MAUI アプリ
新規プロジェクト作成 .NET MAUI アプリ

メインの XAML画面で「タイマーを使った時計表示」

MAUIアプリプロジェクトを作成すると、デフォルトで下のアプリが実装されています。

初期実装されているアプリ

この画面の「Hello, World!」Label部分を時計表示に変えるコードです。

上記の画面は「MainPage.xaml」です。

下記は、「MainPage.xaml.cs」です。

コンストラクタにタイマーとイベントを追加しています。

public partial class MainPage : ContentPage
{
	int count = 0;

	public MainPage()
	{
		InitializeComponent();
        new Timer((state) =>
        {
            try
            {
                Dispatcher.Dispatch(() =>
                {
                    try
                    {
                        Label1.Text = DateTime.Now.ToString();
                        SemanticScreenReader.Announce(Label1.Text);//これいらん?
                    }
                    catch (Exception _e)
                    {
                        Console.WriteLine(_e.Message);
                    }
                });
            }
            catch (Exception _e1)
            {
                Console.WriteLine(_e1.Message);
            }
        }, null, new TimeSpan(0), new TimeSpan(0, 0, 1));
    }
}

TimerSystem.Threading.Timerです。

この、Timerイベントから 直接 Label1.Textの値を 変更すると ぶつかります。

イベント内の、Dispatcher.Dispatch()の 中で Label1.Textの値を変更しています。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED