diff --git a/src/modules/Projects/ProjectsEditor/MainPage.xaml.cs b/src/modules/Projects/ProjectsEditor/MainPage.xaml.cs
index fdc3bf894a..eab91b83a8 100644
--- a/src/modules/Projects/ProjectsEditor/MainPage.xaml.cs
+++ b/src/modules/Projects/ProjectsEditor/MainPage.xaml.cs
@@ -25,7 +25,7 @@ namespace ProjectsEditor
private /*async*/ void NewProjectButton_Click(object sender, RoutedEventArgs e)
{
- _mainViewModel.AddNewProject();
+ _mainViewModel.EnterSnapshotMode();
}
private void EditButtonClicked(object sender, RoutedEventArgs e)
diff --git a/src/modules/Projects/ProjectsEditor/OverlayWindow.xaml b/src/modules/Projects/ProjectsEditor/OverlayWindow.xaml
new file mode 100644
index 0000000000..225b58a59e
--- /dev/null
+++ b/src/modules/Projects/ProjectsEditor/OverlayWindow.xaml
@@ -0,0 +1,15 @@
+
+
+
diff --git a/src/modules/Projects/ProjectsEditor/OverlayWindow.xaml.cs b/src/modules/Projects/ProjectsEditor/OverlayWindow.xaml.cs
new file mode 100644
index 0000000000..8ebd96e585
--- /dev/null
+++ b/src/modules/Projects/ProjectsEditor/OverlayWindow.xaml.cs
@@ -0,0 +1,31 @@
+// Copyright (c) Microsoft Corporation
+// The Microsoft Corporation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+
+namespace ProjectsEditor
+{
+ ///
+ /// Interaction logic for OverlayWindow.xaml
+ ///
+ public partial class OverlayWindow : Window
+ {
+ public OverlayWindow()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/src/modules/Projects/ProjectsEditor/Properties/Resources.Designer.cs b/src/modules/Projects/ProjectsEditor/Properties/Resources.Designer.cs
index 250071953a..3346fa1123 100644
--- a/src/modules/Projects/ProjectsEditor/Properties/Resources.Designer.cs
+++ b/src/modules/Projects/ProjectsEditor/Properties/Resources.Designer.cs
@@ -483,6 +483,24 @@ namespace ProjectsEditor.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Move the windows you want to include to the project into the desired position. There will be later a possibility to deselect the windows you don't want to include to the project..
+ ///
+ public static string SnapshotDescription {
+ get {
+ return ResourceManager.GetString("SnapshotDescription", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Snapshot Creator.
+ ///
+ public static string SnapshotWindowTitle {
+ get {
+ return ResourceManager.GetString("SnapshotWindowTitle", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Sort by.
///
@@ -492,6 +510,15 @@ namespace ProjectsEditor.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Take Snapshot.
+ ///
+ public static string Take_Snapshot {
+ get {
+ return ResourceManager.GetString("Take_Snapshot", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Write arguments here.
///
diff --git a/src/modules/Projects/ProjectsEditor/Properties/Resources.resx b/src/modules/Projects/ProjectsEditor/Properties/Resources.resx
index 64f0e567e0..add139fea5 100644
--- a/src/modules/Projects/ProjectsEditor/Properties/Resources.resx
+++ b/src/modules/Projects/ProjectsEditor/Properties/Resources.resx
@@ -258,9 +258,18 @@
Select All Apps in Project
+
+ Move the windows you want to include to the project into the desired position. There will be later a possibility to deselect the windows you don't want to include to the project.
+
+
+ Snapshot Creator
+
Sort by
+
+ Take Snapshot
+
Write arguments here
diff --git a/src/modules/Projects/ProjectsEditor/SnapshotWindow.xaml b/src/modules/Projects/ProjectsEditor/SnapshotWindow.xaml
new file mode 100644
index 0000000000..f436698119
--- /dev/null
+++ b/src/modules/Projects/ProjectsEditor/SnapshotWindow.xaml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/modules/Projects/ProjectsEditor/SnapshotWindow.xaml.cs b/src/modules/Projects/ProjectsEditor/SnapshotWindow.xaml.cs
new file mode 100644
index 0000000000..55485add8d
--- /dev/null
+++ b/src/modules/Projects/ProjectsEditor/SnapshotWindow.xaml.cs
@@ -0,0 +1,51 @@
+// Copyright (c) Microsoft Corporation
+// The Microsoft Corporation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Shapes;
+using ProjectsEditor.ViewModels;
+
+namespace ProjectsEditor
+{
+ ///
+ /// Interaction logic for SnapshotWindow.xaml
+ ///
+ public partial class SnapshotWindow : Window
+ {
+ private MainViewModel _mainViewModel;
+
+ public SnapshotWindow(MainViewModel mainViewModel)
+ {
+ _mainViewModel = mainViewModel;
+ InitializeComponent();
+ }
+
+ private void CancelButtonClicked(object sender, RoutedEventArgs e)
+ {
+ Close();
+ _mainViewModel.CancelSnapshot();
+ }
+
+ private void SnapshotButtonClicked(object sender, RoutedEventArgs e)
+ {
+ _mainViewModel.AddNewProject();
+ }
+
+ private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
+ {
+ _mainViewModel.CancelSnapshot();
+ }
+ }
+}
diff --git a/src/modules/Projects/ProjectsEditor/ViewModels/MainViewModel.cs b/src/modules/Projects/ProjectsEditor/ViewModels/MainViewModel.cs
index 3765821afb..90ad646e33 100644
--- a/src/modules/Projects/ProjectsEditor/ViewModels/MainViewModel.cs
+++ b/src/modules/Projects/ProjectsEditor/ViewModels/MainViewModel.cs
@@ -22,6 +22,8 @@ namespace ProjectsEditor.ViewModels
public class MainViewModel : INotifyPropertyChanged, IDisposable
{
private ProjectsEditorIO _projectsEditorIO;
+ private SnapshotWindow _snapshotWindow;
+ private List _overlayWindows = new List();
public ObservableCollection Projects { get; set; } = new ObservableCollection();
@@ -217,6 +219,7 @@ namespace ProjectsEditor.ViewModels
public async void AddNewProject()
{
+ CancelSnapshot();
await Task.Run(() => RunSnapshotTool());
if (_projectsEditorIO.ParseProjects(this).Result == true && Projects.Count != 0)
{
@@ -388,5 +391,39 @@ namespace ProjectsEditor.ViewModels
project.OnPropertyChanged(new PropertyChangedEventArgs(nameof(Project.IsAnySelected)));
}
+
+ internal void EnterSnapshotMode()
+ {
+ _mainWindow.WindowState = System.Windows.WindowState.Minimized;
+ _overlayWindows.Clear();
+ var screens = System.Windows.Forms.Screen.AllScreens;
+ foreach (var screen in screens)
+ {
+ OverlayWindow overlayWindow = new OverlayWindow();
+ overlayWindow.Top = screen.Bounds.Top;
+ overlayWindow.Left = screen.Bounds.Left;
+ overlayWindow.Width = screen.Bounds.Width;
+ overlayWindow.Height = screen.Bounds.Height;
+ overlayWindow.ShowActivated = true;
+ overlayWindow.Topmost = true;
+ overlayWindow.Show();
+ _overlayWindows.Add(overlayWindow);
+ }
+
+ _snapshotWindow = new SnapshotWindow(this);
+ _snapshotWindow.ShowActivated = true;
+ _snapshotWindow.Topmost = true;
+ _snapshotWindow.Show();
+ }
+
+ internal void CancelSnapshot()
+ {
+ foreach (OverlayWindow overlayWindow in _overlayWindows)
+ {
+ overlayWindow.Close();
+ }
+
+ _mainWindow.WindowState = System.Windows.WindowState.Normal;
+ }
}
}