private void ToggleElementsOpacity(bool show)
 {
     InfoPlaceHolderGrid.GetVisual().Opacity = show ? 1f : 0f;
     OperationSP.GetVisual().Opacity         = show ? 1f : 0f;
     PreviewBtn.GetVisual().Opacity          = show ? 1f : 0f;
     SetAsGrid.GetVisual().Opacity           = show ? 1f : 0f;
 }
        private void ToggleExifInfo(bool show)
        {
            _showingExif = show;
            if (show)
            {
                SetInfoPlaceholderGridClip(false);
                InfoPlaceHolderGrid.Background = CurrentImage.MajorColor;
                _exifInfoVisual.SetTranslation(new Vector3(0f, 100f, 0f));
            }
            else
            {
                InfoPlaceHolderGrid.Background = new SolidColorBrush(Colors.Transparent);
            }

            var showDurationForInfo = 600;
            var hideDurationForInfo = _hideAfterHidingExif ? 200 : 400;

            var showDurationForExif = 400;
            var hideDurationForExif = _hideAfterHidingExif ? 200 : 600;

            AutherNameBtn.BorderThickness = new Thickness(0, 0, 0, show ? 0 : 2);

            _infoGridVisual.StartBuildAnimation().Animate(AnimateProperties.TranslationY)
            .To(show ? -100f : 0f)
            .Spend(show ? showDurationForInfo : hideDurationForInfo)
            .Start()
            .OnCompleted += (s, e) =>
            {
                if (!show)
                {
                    SetInfoPlaceholderGridClip(true);
                    if (_hideAfterHidingExif)
                    {
                        _hideAfterHidingExif = false;
                        Hide();
                    }
                }
            };

            _exifInfoVisual.StartBuildAnimation()
            .Animate(AnimateProperties.TranslationY)
            .To(show ? 0f : 100f)
            .Spend(show ? showDurationForExif : hideDurationForExif)
            .Start();

            _operationSPVisual.StartBuildAnimation().Animate(AnimateProperties.TranslationY)
            .To(show ? -100f : 0f)
            .Spend(show ? showDurationForInfo : hideDurationForInfo)
            .Start();

            SetAsGrid.GetVisual().StartBuildAnimation().Animate(AnimateProperties.TranslationY)
            .To(show ? -100f : 0f)
            .Spend(show ? showDurationForInfo : hideDurationForInfo)
            .Start();

            InfoBtn.GetVisual().CenterPoint = new Vector3((float)InfoBtn.ActualWidth / 2f, (float)InfoBtn.ActualHeight / 2f, 0);
            InfoBtn.GetVisual().StartBuildAnimation().Animate(AnimateProperties.RotationAngleInDegrees)
            .To(show ? 180f : 0f)
            .Spend(show ? showDurationForInfo : hideDurationForInfo)
            .Start();
        }