スキップしてメイン コンテンツに移動

.NET MAUI TOAST を使ってみた

toast

何かやると、画面の下の方に「ピローン」と出てくるお知らせtoastと言うそうで
しらべてみたら、あっさり出来たので採用することにしました

mauiでtoast

というか

マイクロソフトのサイトを見てください

で終わってしまうレベル

NuGetでCommunityToolkitをゲット

まあ、Nugetの画面で「communitytoolkit maui」と検索に入れればすぐ出てくるのでインストール

Maui Community Toolkit
 

ブートストラップ修正

まあ起動時におまじないを入れるだけですが

プロジェクト内の「MauiProgram.cs」の先頭に

using CommunityToolkit.Maui;

を追加

更に、ブートストラップに .UseMauiCommunityToolkit()を追加する

下のような感じ

   public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder.UseMauiApp<App>().ConfigureFonts(fonts =>
        {
            fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
        }).UseMauiCommunityToolkit();

        //builder
        //  .UseMauiApp<App>()
        //  .ConfigureFonts(fonts =>
        //  {
        //      fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
        //      fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
        //  });
#if DEBUG
        builder.Logging.AddDebug();
#endif
        return builder.Build();
    }

これでtoolkitが使えるようになった

クリックで表示してみる

ボタンのクリック内で使いたければクリック内にこんなコードを書く

クリックイベントにasyncを付けなければ・・・ってVisual Studioならtoast.showにawaitを入れたときにお世話してくれるからあんまり気にしないで大丈夫

private async void OnClicked(object sender, EventArgs e)
{
    CancellationTokenSource cancellation=new CancellationTokenSource(); // キャンセルオプション
    string txt = "トースト";                                            // 表示したい文字列
    ToastDuration dur = ToastDuration.Short;                            // どんなふうに表示したいか(この場合は短めに)
    double fontsize = 14;                                               // フォントサイズ
    var toast = Toast.Make(txt,dur, fontsize);                          // toastオブジェクト作成        
    await toast.Show(cancellation.Token);                               // 作成したtoast表示
}
 

先頭にはAndroidの例を出したけど、Windowsだとこんなのが出てくる

maui toast windowsの通知

右下の通知だね

通知領域にもしっかり残ってる
でまあ、えるいーだーに組み込むとこれだけでは済まなかったりする

接続、切断の通知に使いたかったんだけど、イベントとして上がったメソッド内で実行すると普通に吹っ飛ぶのでメインフォームのスレッドで動作するようにディスパッチしてあげなければならない

えるいーだーに組み込む

と言ってもDispatcherにトースト表示用のメソッドを実行させてるだけなんだけど

        Dispatcher.Dispatch(() =>
            this.BleStatus.Text = "切断"); // 画面上部に切断表示
        Dispatcher.Dispatch(()=>
            toastPush("切断"));       // toastとして表示

        /// <summary>
        /// トースト表示
        /// </summary>
        /// <param name="txt"></param>
        static public async void toastPush(string txt)
        {
            CancellationTokenSource cancellation = new CancellationTokenSource();
            ToastDuration dur = ToastDuration.Long;

            double fontsize = 25;
            var toast = Toast.Make(txt, dur, fontsize);
           
            await toast.Show(cancellation.Token);
        }

お試しで組み込んだのでディスパッチを2個並べるという格好悪い書き方になってるけど

おしまい

コメント

このブログの人気の投稿

RAM DISKを使ってみた(使ったのはImDisk)

GWだし、まあちょっとラムディスクを入れてみました うちのPCはWindows11 使ったのはImDiskというRAM Disk。 まあ、この辺のインストールとかはあちこちで解説してる人がいるので適当にぐぐってくださいな で、とりあえずベンチマーク なかなかいいスピードだ で、大抵の人はブラウザのキャッシュをRAMディスクにするといいよ・・・と言うけど そもそもメインドライブがNVMeのSSDを使っている状態で、体感速度なんか上がらない(使い終わったキャッシュを再起動したら綺麗さっぱり捨て去ってくれるという利点はある)  うちで一番効果があるのは Adobe Audition というアプリ これが結構高速化する(キャッシュをちゃんとRAMディスクにしたら・・・だけど) ハイレゾ音源だと、1時間の音源が何かする度に4GBのファイルを作られてしまう なので、RAM DISKにすると、結構編集時間を短縮できる Premiere Rushも出力先をRam Diskにしておいて終わったら、SSDにコピーすると言う事をやるとかなりスピードアップになる 実はうちのPCは普段は99%のパワーで動作していて、CPUのターボブーストが掛からないようになっている 大体3.6GHz当たりで安定してるのだけど、これを100%にするとターボブースト機能がONになって一部のコアが4.5とか4.8GHzまで上がる まあ、毎回電源オプションをいじる事になるのだけどさ・・・ そうしてベンチを取ると こんな感じ とは言え、ブーストしてるからと行ってRam Diskのスピードの差を体感する事はさすがに無理 ・・・と言うかフォトショでもRAM DISKにしてよかった・・・と言うほど変わらない SSDの性能が上がってきたしもし次にPCを買い換えたらRAM DISKよりSSDの方が速いかもね  

.NET MAUI BLE(Bluetooth Low Energy)も上手く行った

2023/10/11更新 ↓こちらの記事で更新しれました。 .NET MAUI PLUGIN BLEがWindows(10/11)に対応してた Windows対応 イヤッッホォォォオオォオウ Bluetooth LE plugin for Xamarin &amp; MAUI がWindowsに対応してた~ nugetでver3.00をみんな早速ゲットだ。   ちなみにこちらはAndroid版のサンプルアプリ   GitHub...   [ブログカード風リンクタグ作成] ------------------------------------------------------------------------------ 昔、スマホとESP32の接続確認用に作ったプログラムをXamarinからMAUIに移植したら動いちゃった   まあ、ESP32からスマホへの一方通行なアプリなんだけど 面倒くさいので github に公開した 下手くそなコード書きやがってとか思われそう 「間違ってるぞこのやろう」というのを見つけたら教えてくれると嬉しいです 要素技術の調査はこれで完了かな

.NET MAUIでスプラッシュスクリーン Android12で地獄を見る

まずは起動するところから・・・・  スプラッシュスクリーンだぬ マイクロソフトのサイト 見てると簡単そう(実際簡単で細かい事を気にしなければsvgファイルを用意して1行だけ書き換えておしまい)   なんかプロジェクトファイルに自動で記述されるらしい よし、プロジェクト作った                     つーか、もうスプラッシュがあるんだけど・・・・ そして自作のsvgファイル くうっ・・・デザインセンスない・・・・   それはともかく、このSVGファイルを Resources\Images にドラッグ&ドラッグ プロジェクトを右クリックして「プロジェクトファイルの編集」 して、編集できるようになったプロジェクトファイルを 自分のプロジェクトファイルに書き換える <MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="168,168" /> ↓ <MauiSplashScreen Include="Resources\Splash\ splashtestmaui .svg" Color="#512BD4" BaseSize="168,168" />   とりあえずAndroidで実行 お、おう・・・・ まあ最初はこんなもんよね 最初に紹介したマイクロソフトのサイトでもBaseSizeを書き換えてくださいって言ってるし 言われたとおりに <MauiSplashScreen Include="Resources\Splash\splashtestmaui.svg" Color="#512BD4" BaseSize=" 320,600 " /> 書き換えてみると いい感じじゃーん じゃあアンドロイドのバージョン毎に試してみよう   Android 7 Android 11 Android 12 Android 13