読者です 読者をやめる 読者になる 読者になる

だるろぐ

とてもだるだるした日記です http://about.daruyanagi.jp/

お知らせ

UWP:一定時間が経過すると勝手に消えるメッセージを実装する

UWP Windows開発

画面に「保存しました」っていうメッセージを出したいけれど、いつまでも表示されてるのも鬱陶しいので、たとえば3秒後に消したい、みたいな。

public class MainPageViewModel : BindableBase
{
    private string message = string.Empty;

    public string Message
    {
        get { return message; }
        set { SetProperty(ref message, value); }
    }

    private void ShowMessage(string message)
    {
        Message = message;

        var timer = new DispatcherTimer()
        {
            Interval = TimeSpan.FromSeconds(3),
        };

        timer.Tick += (e, args) => { Message = string.Empty; };

        timer.Start();
    }
}

とにかく DispatcherTimer というのを使うと、遅延タスクみたいなのを実装できるみたい。Message プロパティの setter に処理をぶち込んでもいいかも? どういう書き方がキレイな書き方なのかまだよくわかんないな。上級者は ReactibeExtension みたいなのを使いこなして、スッキリ書いちゃうのかもしれないが……。

あと、ほんとは XAML だけでできればカッコいいのだろうけれど、自分には無理だった。

で、テキトーに作ってみてから思ったのだけど、こういうのはユーザーコントロールにしておけばよさげだよね。というわけで、次回はユーザーコントロールでも作ってみる。