/// <summary> /// Se la finestra del pubblico non è aperta (o non è istanziata) /// la creo sul momento /// </summary> public bool aprireFinestraPubblico() { // Se è già aperta, non faccio niente if (_pubblicoWindow != null) { return(false); } IInputElement elementoKeyboardInfuocato = Keyboard.FocusedElement; // Creo _pubblicoWindow = new PubblicoWindow(); // Posiziono posizionaFinestraPubblico(); // Gestisco la chiusura per il rilascio del vm _pubblicoWindow.Closed += chiusoPubblicoWindow; // Visualizzo modeless _pubblicoWindow.Show(); _pubblicoWindow.Topmost = true; // Devo rimenttere il fuoco sul componente che lo deteneva prima Keyboard.Focus(elementoKeyboardInfuocato); // Uso lo stesso viewmodel della gallery perché deve lavorare identico _pubblicoWindow.DataContext = fotoGalleryViewModel; return(true); }
public void chiudereFinestraPubblico() { if (_pubblicoWindow != null) { // Il viewmodel della finestra pubblica è quello della gallery quindi non posso chiuderlo. // Chiudo solo la finestra _pubblicoWindow.Close(); _pubblicoWindow = null; } }
public void chiusoPubblicoWindow(object sender, EventArgs e) { if (_pubblicoWindow != null) { _pubblicoWindow.Closed -= chiusoPubblicoWindow; _pubblicoWindow = null; } if (!azioneInCorso) { stavaGirandoPubblico = false; } FormuleMagiche.attendiGcFinalizers(); }