/// <summary> /// Regenerate stereogram using the same options (but with a dialog to allow you to change them, or there'd really be no point) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void CmdRegenerateStereogramExecuted(object sender, ExecutedRoutedEventArgs e) { Stereogram src = e.Parameter as Stereogram; if (src == null || src.HasOptions == false) { throw new ArgumentException("Cannot regenerate stereogram"); } Options saveOptions = new Options(src.options); DialogGenerateStereogram dialog = new DialogGenerateStereogram(saveOptions, theViewModel.GetDepthmaps(), theViewModel.GetTextures(), false); bool?ok = dialog.ShowDialog(); if (ok != true) { return; } bool bSave = dialog.SaveStereogram; // Adopt the options from the dialog if they were accepted this.DataContext = null; Options = saveOptions; this.DataContext = theViewModel; theViewModel.GenerateStereogram(saveOptions, stereogram => StereogramGeneratedCallback(stereogram, bSave)); }
/// <summary> /// Geneate a stereogram using an option selection dialog (and optionally save it to a file) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void CmdGenerateStereogramExecuted(object sender, ExecutedRoutedEventArgs e) { Options.texture = (e.Parameter as Texture) ?? theViewModel.SelectedTexture; Options.depthmap = (e.Parameter as Depthmap) ?? theViewModel.SelectedDepthmap; Options saveOptions = new Options(Options); DialogGenerateStereogram dialog = new DialogGenerateStereogram(saveOptions, theViewModel.GetDepthmaps(), theViewModel.GetTextures(), false); bool?ok = dialog.ShowDialog(); if (ok != true) { return; } bool bSave = dialog.SaveStereogram; // Adopt the options from the dialog if they were accepted this.DataContext = null; Options = saveOptions; this.DataContext = theViewModel; theViewModel.GenerateStereogram(saveOptions, stereogram => StereogramGeneratedCallback(stereogram, bSave)); }