Skip to content

XamlWriter bug causes loss of spaces #4410

@vsfeedback

Description

@vsfeedback

This issue has been moved from a ticket on Developer Community.


[severity:Other]
Create a FlowDocument containing the Paragraph:

var p = new Paragraph(new Run(" A "));

(note the spaces before and after the text)

XamlWriter.Save will serialize this Paragraph as:

 A 

(note that the Run element was optimized out)

Now create a Paragraph with TWO Runs:

var p = new Paragraph();
p.Inlines.Add(new Run(" A "));
p.Inlines.Add(new Run(" B "));

(Yes, this could be done with a single Run, but the bug happens whether or not the second Run has artifacts like FontWeight, and it was simpler to demonstrate without.)

XamlWriter.Save will serialize this second Paragraph as:

 A  B 

Notice that the first Run was optimized out -- along with its xml:space attribute.
Removal of the xml:space attribute will now cause loss of the spaces when the XML is parsed back into a FlowDocument.

It does work correctly if the document is manually de-optimized by wrapping each Run with its own Span, but does not work if any Span contains more than one Run: The same optimization (and bug) occurs within each Span.

When used as part of a data-entry application, the arbitrary removal of user-entered spaces is less than ideal.


Original Comments

Feedback Bot on 4/13/2021, 03:53 AM:

We have directed your feedback to the appropriate engineering team for further evaluation. The team will review the feedback and notify you about the next steps.


Original Solutions

Bhavya Udayashankar [MSFT] solved on 4/13/2021, 11:45 AM, 0 votes:

Thank you for your feedback. This is not a VisualStudio issue but an issue with XamlWriter itself. Please file a ticket with that product at https://github.com/dotnet/wpf/issues. (https://aka.ms/vsfeedbackguidelines#other-product).

Thank you,
Bhavya

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions