using System; using System.Collections.Generic; using System.Diagnostics; 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.Forms; 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.PPC.Common.Application; using Tango.Touch.Helpers; namespace Tango.PPC.UI { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { public static MainWindow Instance { get; private set; } public MainWindow() { Instance = this; //Timeline.DesiredFrameRateProperty.OverrideMetadata(typeof(Timeline),new FrameworkPropertyMetadata { DefaultValue = 30 }); InitializeComponent(); bool has_touch = false; #if !DESKTOP if (TouchHelper.IsTouchEnabled()) { var screens = System.Windows.Forms.Screen.AllScreens; //Search for the vertical touch monitor. var touch_screen = screens.Where(x => x.Bounds.Height > x.Bounds.Width).LastOrDefault(); if (touch_screen != null) { WindowStyle = WindowStyle.None; ResizeMode = ResizeMode.NoResize; WindowStartupLocation = WindowStartupLocation.Manual; Topmost = false; // sure? Left = touch_screen.Bounds.Left; Top = touch_screen.Bounds.Top; Width = touch_screen.Bounds.Width; Height = touch_screen.Bounds.Height; has_touch = true; } } #if !DEBUG ForceTouch(); has_touch = true; #endif #endif if (!has_touch) { Viewbox viewBox = new Viewbox(); viewBox.Stretch = Stretch.Uniform; this.Content = viewBox; gridMain.Width = 800; gridMain.Height = 1280; viewBox.Child = gridMain; LockAspectRatio(); this.SizeChanged += (x, y) => { LockAspectRatio(); }; } Closing += MainWindow_Closing; } private void ForceTouch() { WindowStyle = WindowStyle.None; ResizeMode = ResizeMode.NoResize; WindowStartupLocation = WindowStartupLocation.Manual; Topmost = false; // sure? Left = 0; Top = 0; Width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width; Height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height; } protected override void OnSourceInitialized(EventArgs e) { //var hwndSource = PresentationSource.FromVisual(this) as HwndSource; //if (hwndSource != null) // hwndSource.CompositionTarget.RenderMode = RenderMode.SoftwareOnly; base.OnSourceInitialized(e); } private void LockAspectRatio() { this.Width = (this.Height * (800d / 1280d)) - 10; } private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel = true; TangoIOC.Default.GetInstance().ShutDown(); } } }