在我们的项目中,我们保存了窗口大小,位置和最小化/最大化设置,因此我们可以在重新打开窗口时以完全相同的点和大小打开窗口。所有这一切都运行得很好,使用了这篇文章底部的Window-Behavior
- 类。
问题是,当我们使用Win-button +箭头时;这会将屏幕与屏幕一侧对齐,但这并未正确保存在行为中。相反,它在我使用Win +箭头对齐之前保存了屏幕的位置和大小,这就是它再次打开的位置。
我尝试在Left
方法中使用Window的Top
,ActualWidth
,ActualHeight
和SaveWindowState
(注意:{{1在这个方法中是Window。)但AssociatedObject
和Left
似乎关闭了大约20-40像素,并使用Top
保存了Right和Left,{{ 1}}和当前屏幕宽度/高度(当使用多个显示器时)也有点痛苦。
那么,当用户使用Win +箭头对齐Window然后关闭它时,有没有办法在窗口设置中保存正确的位置和大小?
ActualWidth
:
ActualHeight
答案 0 :(得分:0)
您是否尝试过System.Windows.Window
实例而不是p/invoke
?
我使用两个简单的方法来保存和设置窗口位置使用这个类,并且它可以在不同的应用程序,架构,客户端,Windows操作系统上完美地工作,有或没有Aero ......
void SetWindowPosition()
{
this.Left = Settings.Default.WindowPositionLeft;
this.Top = Settings.Default.WindowPositionTop;
}
void SaveWindowPosition()
{
Settings.Default.WindowPositionTop = this.Top;
Settings.Default.WindowPositionLeft = this.Left;
Settings.Default.Save();
}
或者我错过了什么?