我在恢复Avalondock中的浮动工具时遇到了问题。 Im开发的应用程序使用avalondock进行文档管理,只需一些工具。 我通常在第二台显示器上使用这些工具。WPF C#多显示器恢复125%的位置缩放比例
我在工作时使用多个显示器,一个是125%缩放比例,另一个是100%缩放比例。主显示器是4k显示器,另一个是2k显示器。
当我用一台显示器(3440x1440)远程桌面工作电脑并运行应用程序时,我注意到第二台显示器中的工具不可见,我无法将它们带回主屏幕。
Avalondock的浮动LayoutAnocorables不被视为单独的视图。 如果有人知道如何使LayoutAnchorable作为单独的窗口视图,那将是最好的解决方案。但我找不到如何去做。我尝试以下
if (args.Model.IsFloating)
{
var left = (int)args.Model.FloatingLeft;
var top = (int)args.Model.FloatingTop;
var width = (int)args.Model.FloatingWidth;
var height = (int)args.Model.FloatingHeight;
var rect = new System.Drawing.Rectangle(left, top, width, height);
var intersected = Screen.AllScreens.Any(p => p.WorkingArea.IntersectsWith(rect));
if (!intersected)
{
//need to reposition
args.Model.FloatingLeft = 0;
args.Model.FloatingTop = 0;
}
//args.Model.FloatingTop;
}
System.Windows.SystemParameters.PrimaryScreenHeight 1440 double
System.Windows.SystemParameters.PrimaryScreenWidth 3440 double
System.Windows.SystemParameters.VirtualScreenHeight 1440 double
System.Windows.SystemParameters.VirtualScreenWidth 3440 double
args.Model.FloatingLeft 4133.6双 args.Model.FloatingTop 909.6双
WorkingArea {X = 0 Y = 0宽度= 4300高度= 1750} System.Drawing.Rectangle 问题在于工作区域缩放为125%。 这使得args.Model在主窗口的范围内。
所以我想我不能使用System.Windows.Forms.Screen信息,因为我不知道用户将使用哪种缩放比例。
我如何获得多个显示器的真正分辨率和位置和缩放?