private void Change_Display_Settings(object sender, EventArgs e) { Logger.Instance().Log("Yatse2", "Dispay settings changed"); Topmost = _config.Topmost; WindowStartupLocation = WindowStartupLocation.Manual; Activate(); var dx = 1.0; var dy = 1.0; var temp = PresentationSource.FromVisual(this); if (temp != null) { if (temp.CompositionTarget != null) { var m = temp.CompositionTarget.TransformToDevice; dx = m.M11; dy = m.M22; } } var screens = System.Windows.Forms.Screen.AllScreens; if (screens.Length == 1 || !_config.SecondScreen) { if (_config.ForceResolution) { var currentRes = ScreenResolution.GetDevmode(0, -1); Logger.Instance().LogDump("CurrentResolutionMonoScreen", currentRes); if (currentRes.DMPelsHeight != _config.Resolution.DMPelsHeight || currentRes.DMPelsWidth != _config.Resolution.DMPelsWidth || currentRes.DMBitsPerPel != _config.Resolution.DMBitsPerPel) { ScreenResolution.ChangeResolutionMode(0, _config.Resolution); Logger.Instance().LogDump("ChangeResolutionMonoScreen", _config.Resolution); } } Top = 0; Left = 0; } else { if (_config.ForceResolution) { var currentRes = ScreenResolution.GetDevmode(1, -1); Logger.Instance().LogDump("CurrentResolutionMultiScreen", currentRes); if (currentRes.DMPelsHeight != _config.Resolution.DMPelsHeight || currentRes.DMPelsWidth != _config.Resolution.DMPelsWidth || currentRes.DMBitsPerPel != _config.Resolution.DMBitsPerPel) { ScreenResolution.ChangeResolutionMode(1, _config.Resolution); Logger.Instance().LogDump("ChangeResolutionMultiScreen", _config.Resolution); } } screens = System.Windows.Forms.Screen.AllScreens; foreach (var scr in screens.Where(scr => !scr.Primary)) { Top = scr.Bounds.Top / dy; Left = scr.Bounds.Left / dx; break; } } if (_config.Resolution.DMPelsWidth > 0) { Width = _config.Resolution.DMPelsWidth / dx; Height = _config.Resolution.DMPelsHeight / dy; } if (_config.Resolution.DMPelsHeight == 480) { _config.Hack480 = true; brd_Home_Video.Margin = new Thickness(0, 0, 100, 180); brd_Home_Music.Margin = new Thickness(0, 70, 100, 0); brd_Home_Other.Margin = new Thickness(0, 320, 100, 0); } else { brd_Home_Video.Margin = new Thickness(0, 0, 100, 250); brd_Home_Music.Margin = new Thickness(0, 70, 100, 0); brd_Home_Other.Margin = new Thickness(0, 390, 100, 0); } _setPov = false; }