private void SaveLocationAndSize() {
var key = LocationAndSizeKey;
if (key == null || WindowState == WindowState.Minimized) return;
RescaleIfNeeded();
var locationKey = key + @".l";
var sizeKey = key + @".s";
var maximizedKey = key + @".m";
ValuesStorage.Set(locationKey, new Point(Left, Top));
if (ResizeMode == ResizeMode.CanResize || ResizeMode == ResizeMode.CanResizeWithGrip) {
ValuesStorage.Set(sizeKey, new Point(Width, Height));
ValuesStorage.Set(maximizedKey, WindowState == WindowState.Maximized);
}
}