Remove System.Windows.Forms references

pull/3613/head^2
2dust 2023-04-05 20:53:05 +08:00
parent 22475e459d
commit 8ad80bb75d
4 changed files with 44 additions and 46 deletions

View File

@ -1,7 +1,4 @@

using System.ComponentModel;
namespace v2rayN.Mode
namespace v2rayN.Mode
{
public enum EViewAction
{

View File

@ -1177,16 +1177,14 @@ namespace v2rayN
#region scan screen
public static string ScanScreen()
public static string ScanScreen(float dpiX, float dpiY)
{
try
{
foreach (var screen in System.Windows.Forms.Screen.AllScreens)
{
var left = screen.Bounds.X;
var top = screen.Bounds.Y;
var width = screen.Bounds.Width;
var height = screen.Bounds.Height;
var left = (int)(SystemParameters.WorkArea.Left);
var top = (int)(SystemParameters.WorkArea.Top);
var width = (int)(SystemParameters.WorkArea.Width / dpiX);
var height = (int)(SystemParameters.WorkArea.Height / dpiY);
using Bitmap fullImage = new Bitmap(width, height);
using (Graphics g = Graphics.FromImage(fullImage))
@ -1220,7 +1218,6 @@ namespace v2rayN
}
}
}
}
catch (Exception ex)
{
SaveLog(ex.Message, ex);
@ -1228,6 +1225,14 @@ namespace v2rayN
return string.Empty;
}
public static Tuple<float, float> GetDpiXY(Window window)
{
IntPtr hWnd = new WindowInteropHelper(window).EnsureHandle();
Graphics g = Graphics.FromHwnd(hWnd);
return new(96 / g.DpiX, 96 / g.DpiY);
}
#endregion

View File

@ -20,7 +20,6 @@ using v2rayN.Mode;
using v2rayN.Resx;
using v2rayN.Tool;
using v2rayN.Views;
using Application = System.Windows.Application;
namespace v2rayN.ViewModels
@ -924,9 +923,10 @@ namespace v2rayN.ViewModels
{
ShowHideWindow(false);
var dpiXY = Utils.GetDpiXY(Application.Current.MainWindow);
string result = await Task.Run(() =>
{
return Utils.ScanScreen();
return Utils.ScanScreen(dpiXY.Item1, dpiXY.Item2);
});
ShowHideWindow(true);

View File

@ -1,7 +1,6 @@
using ReactiveUI;
using Splat;
using System.ComponentModel;
using System.Drawing;
using System.Reactive.Disposables;
using System.Windows;
using System.Windows.Controls;
@ -420,11 +419,8 @@ namespace v2rayN.Views
Height = _config.uiItem.mainHeight;
}
//IntPtr hWnd = new WindowInteropHelper(this).EnsureHandle();
//Graphics g = Graphics.FromHwnd(hWnd);
//var dip = 96;
var maxWidth = SystemParameters.WorkArea.Width;// * dip / g.DpiX;
var maxHeight = SystemParameters.WorkArea.Height;// * dip / g.DpiY;
var maxWidth = SystemParameters.WorkArea.Width;
var maxHeight = SystemParameters.WorkArea.Height;
if (Width > maxWidth) Width = maxWidth;
if (Height > maxHeight) Height = maxHeight;
if (_config.uiItem.mainGirdHeight1 > 0 && _config.uiItem.mainGirdHeight2 > 0)