かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

UWPで予定を追加したりしたい

UWPでは簡単に予定を追加したり削除したりできます。

AppointmentManagerクラスに各種メソッドがあります。

  • ShowAddAppointmentAsync : 予定を追加
  • ShowRemoveAppointmentAsync : 予定を削除
  • ShowAppointmentDetailAsync : 予定の詳細
  • ShowEditNewAppointmentAsync : 編集とか
  • ShowReplaceAppointmentAsync : 置き換え

簡単に使ってみます。画面にボタンを2つ置いて以下のようなコードをコードビハインドに書いてみます。(ボタンクリックのイベントハンドラ作ってからね)

using System;
using Windows.ApplicationModel.Appointments;
using Windows.Foundation;
using Windows.UI.Popups;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace App45
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private string appointmentId;

        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            var appointment = new Appointment
            {
                AllDay = true,
                Subject = "Test",
                Details = "予定の詳細"
            };

            this.appointmentId = await AppointmentManager.ShowAddAppointmentAsync(appointment, Rect.Empty);
            var dialog = new MessageDialog(this.appointmentId);
            await dialog.ShowAsync();
        }

        private async void Button_Click_1(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(this.appointmentId)) { return; }

            if (await AppointmentManager.ShowRemoveAppointmentAsync(this.appointmentId, Rect.Empty))
            {
                var dialog = new MessageDialog("削除しました");
                await dialog.ShowAsync();
            }
        }
    }
}

これで、カレンダーアプリが立ち上がって予定の追加をしたり、削除したりといったことが出来るようになります。ShowXXXXAppointmentAsyncを呼ぶと以下のようなカレンダーアプリが立ち上がって予定の操作が出来ます。(決して強制的に予定を追加したり削除したりできるわけではなくて、UIを介して操作が行われるという点が注意です)