Боюсь, ваш код в точности соответствует тому, что вы говорите.
xmlWriter.WriteStartElement("element"); //<element>
xmlWriter.WriteString("\r\na\r\n"); //newline, directly followed by 'a'
xmlWriter.WriteEndElement(); //</element>
Если вы хотите сделать отступ, вы должны будете написать это в своем коде, например
xmlWriter.WriteString("\r\n\ta\r\n");
Проблема с этим подходом состоит в том, что если ваш <element>
уже имеет отступ, он испортит отступ - ваш 'a' будет по-прежнему иметь отступ только на одну вкладку.
Таким образом, вы можете либо самостоятельно рассчитать отступ, и написать соответствующее количество вкладок, либо перейти с целым элементом в одну строку
<element>a</element>
Это определенно яснее, но может показаться странным, когда «а» становится очень длинным текстом.