private async void buttonTakePhotoClick(object sender, RoutedEventArgs e)
        {
            if (capturePreview.Source == null)
            {
                return;
            }

            // プレビューに付けた MediaCapture オブジェクトを取り出す
            Windows.Media.Capture.MediaCapture capture = capturePreview.Source;

            // 保存する画像ファイルのフォーマット (pngファイルを指定)
            var imageProperties = Windows.Media.MediaProperties.ImageEncodingProperties.CreatePng();


            // 撮影する。撮影した画像の stream が返ってくる。
            // 自前のコードで WriteableBitmap に変換
            using (var memStream = new Windows.Storage.Streams.InMemoryRandomAccessStream())
            {
                try
                {
                    await capture.CapturePhotoToStreamAsync(imageProperties, memStream);

                    // キャプチャ開始から撮影までの間に許可を取り消されると、ここで例外が出る
                    // 「指定されたファイル ハンドルへのアクセスが取り消されました。 (HRESULT からの例外: 0x80070326)」
                }
                catch (Exception ex)
                {
                    ShowRequestMessageAsync(ex);
                    return;
                }

                captureImage.Source = await memStream.ToWriteableBitmap();
            }


            // 撮影する。素直にいったんファイルに落とす方法

            //StorageFile file = await ApplicationData.Current.TemporaryFolder.CreateFileAsync("test.png", CreationCollisionOption.GenerateUniqueName);
            //try
            //{
            //  await capture.CapturePhotoToStorageFileAsync(imageProperties, file);
            //  // キャプチャ開始から撮影までの間に許可を取り消されると、ここで例外が出る
            //  // 「指定されたファイル ハンドルへのアクセスが取り消されました。 (HRESULT からの例外: 0x80070326)」
            //}
            //catch (Exception ex)
            //{
            //  ShowRequestMessageAsync(ex);
            //  return;
            //}
            //using (var stream = await file.OpenReadAsync())
            //{
            //  var bi = new BitmapImage();
            //  bi.SetSource(stream);
            //  captureImage.Source = bi;
            //}
        }