public static FotoDisposeUtils Instance()
 {
     if (_instance == null)
     {
         _instance = new FotoDisposeUtils();
     }
     return(_instance);
 }
        /// <summary>
        /// Quando lavoro con una singola foto, se vado sullo schermo del pubblico,
        /// devo fare vedere la foto più bella che ho (cioè quella grande)
        /// Il problema è che la foto grande, potrebbe ancora non essere stata calcolata
        /// </summary>
        /// <param name="fotografia"></param>
        ///
        public void eseguiSnapshotSuFinestraPubblica(Fotografia fotografia, bool forzaAperturaWin)
        {
            // Se la finestra è chiusa e il flag non mi forza l'apertura non faccio niente
            if (!forzaAperturaWin && _snapshotPubblicoWindow == null)
            {
                return;
            }

            FotoDisposeUtils.Instance().DisposeFotografia(fotografia);

            IdrataTarget quale = AiutanteFoto.qualeImmagineDaStampare(fotografia);

            AiutanteFoto.idrataImmagineDaStampare(fotografia);

            IImmagine immagine = AiutanteFoto.getImmagineFoto(fotografia, quale);

            forseApriSnapshotPubblicoWindow();

            snapshotPubblicoViewModel.snapshotImageSource = ((ImmagineWic)immagine).bitmapSource;
        }