2010-08-04 50 views
2

有一天,我遇到了下面的XAML,我嚇壞了:如何在TextBlock中填充Grid?

<Grid x:Name="LayoutRoot"> 
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <Grid> 
      <Rectangle Fill="AliceBlue" Width="25" Height="25"/> 
     </Grid> 
    </TextBlock> 
</Grid> 

換句話說......怎麼可能把一個網格一個TextBlock裏面?

回答

3

簡單的答案是,您可以通過兩種方式驅動TextBlock ...通過Text屬性和Inline集合。

在這種情況下,您正在使用Inlines集合。

TextBlock(通過TextElement上的IAddChild.AddChild方法)足夠聰明,可以將Grid包裝到InlineUIContainer中,當然這是Inline。

換句話說,上面的XAML ...是一樣的:

<Grid x:Name="LayoutRoot"> 
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"> 
     <InlineUIContainer> 
      <Grid> 
       <Rectangle Fill="AliceBlue" Width="25" Height="25"/> 
      </Grid> 
     </InlineUIContainer> 
    </TextBlock> 
</Grid> 

希望這可以幫助別人,以避免freakout我了。嘿,嘿。至少,我希望能夠理解它是如何工作的,從而平息它們。