public async Task Hide()
        {
            ((App)(App.Current)).BackRequested -= PhotoPreviewView_BackRequested;
            SizeChanged           -= PhotoPreviewView_SizeChanged;
            ImageRoot.SizeChanged -= ImageRoot_SizeChanged;

            IsVisible = false;

            var splitChar = _photo.IsLocal ? '\\' : '/';
            var filename  = (_photo.Uri.Split(splitChar).LastOrDefault()?.Split('.').FirstOrDefault() ?? "");

            var saveInkTask          = Inker.SaveInkToFile($"ink_{filename}.gif");
            var saveThumbnailTask    = InkHelpers.RenderImageWithInkToFileAsync(Inker, await _file.OpenReadAsync(), $"thumb_{filename}.jpg");
            var closingAnimationTask = Root.Scale(1.2f, 1.2f, (float)ActualWidth / 2, (float)ActualHeight / 2).Fade(0).StartAsync();

            await Task.WhenAll(saveInkTask, closingAnimationTask, saveThumbnailTask);

            _photo.InkUri       = saveInkTask.Result ?? _photo.InkUri;
            _photo.ThumbnailUri = saveThumbnailTask.Result ?? _photo.ThumbnailUri;


            Root.Visibility = Visibility.Collapsed;

            _canvasImage.Dispose();
            _canvasImage = null;

            _photo = null;
            _file  = null;

            ImageCanvas.Invalidate();

            FinishedHiding?.Invoke(this, null);

            _tags.Clear();
            _knownFaces.Clear();
            _facePanels.Clear();
            FaceCanvas.Children.Clear();

            if (Description != null)
            {
                Description.Text = "";
            }

            _effectsGenerator = null;

            FiltersButton.IsChecked = false;
            DetailsButton.IsChecked = false;
            InkButton.IsChecked     = false;
            Inker.InkPresenter.StrokeContainer.Clear();

            _photoInfoInitialized = false;

            if (EffectsView != null)
            {
                EffectsView.Visibility = Visibility.Collapsed;
                _effects.Clear();
            }
        }
        private async void TwitterShareClicked(object sender, RoutedEventArgs e)
        {
            (sender as Button).IsEnabled = false;
            ShareButtons.Fade(0, 200).Start();
            ShareProgress.IsActive   = true;
            ShareProgress.Visibility = Visibility.Visible;

            var filePath = await InkHelpers.RenderImageWithInkToFileAsync(Inker, await _file.OpenReadAsync(), "temp");

            await Identity.Instance.SharePhotoAsync(IdentityProvider.Facebook, await (await StorageFile.GetFileFromPathAsync(filePath)).OpenReadAsync());

            ShareFlyout.Hide();
            (sender as Button).IsEnabled = true;
        }