😊

【プレビュー版】MAUIのよくある処理の早見表

2021/12/12に公開

MAUI(プレビュー版)を使って、ちょっくら本格的なアプリを作ってみようと思うので、今現在(2021/12/12)での、よく使うであろう関数について紹介していく。

※ この記事は、適宜、欲しいと思った内容を追加していきます。

前書き

と言っても、現在(2021/12/12)のバージョンでは、元のXamarin.Formsとの違いは殆どない。基本的には、何か悩みがあったとしても…

上記のような、Mamarin.Formsのマイクロソフトさんの資料を読むだけで解決する。

前提

この記事では、導入説明はしません。
マイクロソフト公式の「.NET MAUIのインストール」をご覧ください。

また、基本的な仕組みに関しても、Xamarinと違いはありません。

なお、書いている人は、Xamarinをほとんど知りません。誤植あったらすまぬ。

ちなみにPageの基本形は、これです。

using System;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;

namespace MauiApp
{
	public partial class MainPage : ContentPage
	{
		public MainPage()
		{
			InitializeComponent();
		}
	}
}

早見表

Eventについて知りたい

特に、Xamarinの各elementの紹介に書いてあるEventと違いはない。
Labelならこれで、動く。

タイマーを設置したい

Xamarin FormsのDevice.StartTimerと違いはない。
強いて言えば、Deviceを呼び出す元が、Xamarin.Forms.からMicrosoft.Maui.Controls.になったという点である。
ちなみに下の奴は、「1秒後に、中の処理を行う」というものである。

Device.StartTimer(new System.TimeSpan(1 * 10000000), () =>
{
	# やりたいこと
	return false; // 用途によってはtrue
});

フェードをしたい

Xamarin FormsのViewExtensions.FadeToと違いはない。
下の奴は、「2秒かけて、透明度を0にする。この時、フェードの変化(イージング)具合は、CubicInにする。」というもの。

a_label.Opacity = 1;
a_label.FadeTo(0, 2 * 1000, Microsoft.Maui.Easing.CubicIn);

ちなみにPageが完成して表示されていないのに、フェードかけようとするとエラー吐いて死にます(「アニメーションできる環境じゃないよ」と言われる)。
なので、なんとかして、Page完全表示後に処理させてください。

画面遷移

Xamarin同様

Navigation.PushlAsync(new Page1(), true);
Navigation.PushModalAsync(new Page1(), true);

Discussion