private static WindowPosition LookupWindowPosition(String name)
{
try
{
var list = Properties.Settings.Default.WindowPositions;
if (list == null)
return null;
var position = (WindowPosition)list[name];
if (position == null || position.Rect.IsEmpty)
return null;
foreach (var screen in Screen.AllScreens)
{
if (screen.WorkingArea.IntersectsWith(position.Rect))
return position;
}
}
catch(ConfigurationException)
{
//TODO: howto restore a corrupted config? Properties.Settings.Default.Reset() doesn't work.
}
return null;
}