If you simply set the value of Text property in a TextBlock as "Example " (Note that there 3 whitespaces at the end of this string),what TextBlock shows in UI is just "Example".
And after searching for solutions on the Internet, I found that there is a way to solve this issue:
<Border BorderThickness="1"
BorderBrush="#FFFF0202"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock x:Name="t1">
<Run Text="Example   "/>
</TextBlock>
</Border>
The above code shows the use of Inline Property of TextBlock and  
in Run's Text displays the whitespace correctly.
However, im my case I need to set the Text property of TextBlock in Code-behind(or via DataBinding), the trick above doesn't work and it shows Example   
in UI.
I tried to set the value of Run's Text property by data binding, which I think can displays the escape character correctly, but Run's Text property is NOT a dependency property so I have no better way to solve this.
(However I think use padding property of TextBlock is also a trick to do this, and it should work. But there is any better way to do ?)
<TextBlock><Run>Hello</Run><Run xml:space="preserve"> world!</Run></TextBlock>
the space between Hello and world is preserved if and only if thexml:space
attribute is set. So xml:space="preserve" does work in UWP but it is indeed not propagated from the TextBlock to Run as expected. I guess the most relevant documentation on this is MSDN's Whitespace Processing in XAML. – Coaptation