-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
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