Простой ответ заключается в том, что вы можете управлять TextBlock двумя способами ... через свойство Text и через коллекцию Inlines.
В этом случае вы используете коллекцию Inlines.
TextBlock (с помощью метода IAddChild.AddChild в TextElement) достаточно умен, чтобы обернуть эту сетку в InlineUIContainer ... который, конечно, является встроенным.это то же самое, что и:
<Grid x:Name="LayoutRoot">
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
<InlineUIContainer>
<Grid>
<Rectangle Fill="AliceBlue" Width="25" Height="25"/>
</Grid>
</InlineUIContainer>
</TextBlock>
</Grid>
Надеюсь, это поможет кому-то избежать моей одержимости.Хе хеНу, по крайней мере, я надеюсь, что это успокоит их пониманием того, как это работает.