我在WPF中创建了代码,让窗口记住它的最后位置:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
try
{
Rect storedLoc = Properties.Settings.Default.WindowSavedLocation;
this.Top = storedLoc.Top;
this.Left = storedLoc.Left;
}
catch
{
MessageBox.Show("No settings stored !");
}
}
private void Window_Closed(object sender, EventArgs e)
{
Properties.Settings.Default.WindowSavedLocation = RestoreBounds;
Properties.Settings.Default.Save();
}
当我构建应用程序时,我可以看到app.exe.config文件具有设置
WindowSavedLocation
但它只是不保存并且不会抛出任何异常。
每次我运行应用程序时,都会显示“没有存储设置!”。
它的范围是用户。
答案 0 :(得分:2)
我责备。 Window.RestoreBounds属性docs的Remarks部分与您的问题相关:
如果在查询之前查询RestoreBounds 窗口已显示或已显示 已关闭,返回空。
使用Closing事件,以便RestoreBounds属性仍然有效。