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

かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

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を介して操作が行われるという点が注意です)