blob: 4dc1bb713069bd531eaef719a27bbc9f12e06d99 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
using MahApps.Metro.Controls;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
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.Interop;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Tango.Core.DI;
using Tango.Core.Helpers;
using Tango.Logging;
using Tango.MachineStudio.Common;
using Tango.MachineStudio.Common.Buid;
using Tango.MachineStudio.Common.StudioApplication;
using Tango.Settings;
namespace Tango.MachineStudio.UI
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : MetroWindow
{
public static MainWindow Instance { get; set; }
private LogManager LogManager = LogManager.Default;
private bool _is_testing;
public MainWindow()
{
//Timeline.DesiredFrameRateProperty.OverrideMetadata(typeof(Timeline), new FrameworkPropertyMetadata { DefaultValue = 40 });
try
{
InitializeComponent();
if (!_is_testing)
{
Viewbox box = new Viewbox();
box.Stretch = Stretch.Fill;
main_grid.Children.Remove(grid);
box.Child = grid;
main_grid.Children.Add(box);
}
WindowStartupLocation = WindowStartupLocation.Manual;
var r = SettingsManager.Default.GetOrCreate<MachineStudioSettings>().LastBounds;
if (r.Width > 0 && r.Height > 0)
{
Left = r.Left;
}
Instance = this;
ThreadsHelper.SetDisptacher(Dispatcher);
Closing += MainWindow_Closing;
}
catch (Exception ex)
{
LogManager.Log(ex);
}
this.Loaded += MainWindow_Loaded;
this.SizeChanged += MainWindow_SizeChanged;
ContentRendered += MainWindow_ContentRendered;
}
private void MainWindow_ContentRendered(object sender, EventArgs e)
{
WindowState = WindowState.Maximized;
Title = "MACHINE STUDIO " + (TangoIOC.Default.GetInstance<IBuildProvider>().BuildType == MSBuildType.Lite ? "LITE " : "") + TangoIOC.Default.GetInstance<IStudioApplicationManager>().Version.ToString(3);
}
private void MainWindow_SizeChanged(object sender, SizeChangedEventArgs e)
{
var screen = System.Windows.Forms.Screen.FromHandle(new WindowInteropHelper(this).Handle);
double scr_width = screen.Bounds.Width;
double scr_height = screen.Bounds.Height;
double ratio = scr_width / scr_height;
List<double> ratios = new List<double>() { 16d / 9d, 16d / 10d, 4d / 3d, 1366 / 768 };
ratio = ratios.Closest(ratio);
switch (ratio)
{
case 16d / 9d:
grid.Height = 1145;
grid.Width = 2000;
break;
case 16d / 10d:
grid.Height = 1145;
grid.Width = 1920;
break;
case 4d / 3d:
grid.Height = 1280;
grid.Width = 1920;
break;
case 1366d / 768d:
grid.Height = 1100;
grid.Width = 1920;
break;
default:
grid.Height = 1145;
grid.Width = 1920;
break;
}
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
//HwndSource hwndSource = PresentationSource.FromVisual(this) as HwndSource;
//HwndTarget hwndTarget = hwndSource.CompositionTarget;
//hwndTarget.RenderMode = RenderMode.SoftwareOnly;
}
private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
TangoIOC.Default.GetInstance<IStudioApplicationManager>().ShutDown();
}
}
}
|