Avalondockで浮動ツールを復元する際に問題が発生しています。 アプリ開発では、いくつかのツールでドキュメント管理にavalondockを使用しています。 私は通常、第2モニタのツールを使用します。WPF C#複数のモニタ125%での位置スケーリングの復元
私は、125%のスケーリングと100%のスケーリングで、複数のモニタを使用しています。メインモニターは4kモニター、もう1台は2kモニターです。
1台のモニター(3440x1440)でリモートPCを操作してアプリを実行すると、2台目のモニターのツールが表示されず、メイン画面に戻す方法がないことに気付きました。
AvalondockのフローティングLayoutAnchorablesは、別々のビューとして扱われません。 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情報を使用することはできません。ユーザーが使用するスケーリングがわからないためです。
複数のモニタと位置とスケーリングの実際の解像度はどうやって取得できますか?