public override void WriteXml(XmlWriter writer) { TypeConverter colorConverter = TypeDescriptor.GetConverter(typeof(Color)); base.WriteXml(writer); writer.WriteElementString("KnobImage", KnobImage); writer.WriteStartElement("Positions"); foreach (RotarySwitchPosition position in Positions) { writer.WriteStartElement("Position"); writer.WriteAttributeString("Name", position.Name); writer.WriteAttributeString("Rotation", position.Rotation.ToString(CultureInfo.InvariantCulture)); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteElementString("DefaultPosition", DefaultPosition.ToString(CultureInfo.InvariantCulture)); if (DrawLines) { writer.WriteStartElement("Lines"); writer.WriteElementString("Thickness", LineThickness.ToString(CultureInfo.InvariantCulture)); writer.WriteElementString("Length", LineLength.ToString(CultureInfo.InvariantCulture)); writer.WriteElementString("Color", colorConverter.ConvertToInvariantString(LineColor)); writer.WriteEndElement(); } if (DrawLabels) { writer.WriteStartElement("Labels"); writer.WriteElementString("Color", colorConverter.ConvertToInvariantString(LabelColor)); writer.WriteElementString("MaxWidth", MaxLabelWidth.ToString(CultureInfo.InvariantCulture)); writer.WriteElementString("MaxHeight", MaxLabelHeight.ToString(CultureInfo.InvariantCulture)); writer.WriteElementString("Distance", LabelDistance.ToString(CultureInfo.InvariantCulture)); LabelFormat.WriteXml(writer); writer.WriteEndElement(); } writer.WriteStartElement("ClickType"); writer.WriteElementString("Type", ClickType.ToString()); if (ClickType == Controls.ClickType.Swipe) { writer.WriteElementString("Sensitivity", SwipeSensitivity.ToString(CultureInfo.InvariantCulture)); } writer.WriteEndElement(); writer.WriteElementString("MouseWheel", MouseWheelAction.ToString(CultureInfo.InvariantCulture)); }