public void SaveKey(XDocument xml, string keyName, KeyValuePair<Keys, ModifierKeys> keyValue, bool saveAlt = true)
{
xml.Root.Add(new XElement(keyName));
var xmlCtrl = (keyValue.Value & ModifierKeys.Control) != ModifierKeys.None;
var xmlShift = (keyValue.Value & ModifierKeys.Shift) != ModifierKeys.None;
var xmlWindow = (keyValue.Value & ModifierKeys.Win) != ModifierKeys.None;
var xmlAlt = (keyValue.Value & ModifierKeys.Alt) != ModifierKeys.None;
var xmlKey = keyValue.Key;
xml.Root.Element(keyName).Add(new XElement("ctrl", xmlCtrl.ToString()));
xml.Root.Element(keyName).Add(new XElement("shift", xmlShift.ToString()));
xml.Root.Element(keyName).Add(new XElement("window", xmlWindow.ToString()));
if (saveAlt) xml.Root.Element(keyName).Add(new XElement("alt", xmlAlt.ToString()));
xml.Root.Element(keyName).Add(new XElement("key", xmlKey.ToString()));
}