如何在textblock中包装文本?

时间:2015-11-14 11:49:10

标签: c# xaml

我试图让文本框自动填充它的文本并将其对齐在应用程序的中心。我知道如何在中心对齐它,但不知道如何将文本自动填充。

例如:

我在文本块中有一些文本(请参阅下面的代码),问题是它只显示前五个单词。我一直在尝试设置每个文本对齐属性。到目前为止没有好处。 任何人都可以帮我这个吗?

        <TextBlock Text="Het Commerciële Huis uit Aalten (Achterhoek) is een instituut op het gebied van optimalisatie van commercie en communicatie. Wij werken met passie aan uw resultaat" Margin="0,50,0,0" HorizontalAlignment="Center" TextAlignment="Center" />

P.S。

如果有人能告诉我如何给文本框宽度等于客户端宽度的50%,那也很好。

亲切的问候!

2 个答案:

答案 0 :(得分:1)

Stackpanel可以帮助正确包装文本块:

<Viewbox>
   <StackPanel Orientation="Vertical" Width="400">
       <TextBlock x:Name="subHeaderText" Text="Het Commerciële Huis uit Aalten (Achterhoek) is een instituut op het gebied van optimalisatie van commercie en communicatie. Wij werken met passie aan uw resultaat" FontSize="10" TextWrapping="Wrap" Foreground="Black" />
   </StackPanel>
</Viewbox>

或只使用TextWrapping控件的TextBlock属性:

<TextBlock TextWrapping="Wrap">Het Commerciële Huis uit Aalten (Achterhoek) is een instituut op het gebied van optimalisatie van commercie en communicatie. Wij werken met passie aan uw resultaat</TextBlock>

有很多技术可以在两个相似的部分上分割窗口。在我看来,分为窗口两部分的最灵活的技术是使用名为Layout的{​​{1}}控件:

Grid

答案 1 :(得分:1)

我会使用一些网格来做。

*第一个网格定义了两行 - 一个用于内容的标题一行

*内容网格定义了三列 - 一列是中心,大小为50%,另外两列各占25%

*您的内容网格位于第二行,您可以在其中放置其余部分的内容。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid Background="Purple" x:Name="header" HorizontalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="2*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <TextBlock Text="ADSADASDSADSADSADSADSA adasdsadasd asdad dsadasd sa ADSADASDSADSADSADSADSA adasdsadasd asdad dsadasd sa ADSADASDSADSADSADSADSA adasdsadasd asdad dsadasd sa"
                   Grid.Column="1"
                   Foreground="White"
                   HorizontalAlignment="Center" 
                   TextAlignment="Center" 
                   TextWrapping="WrapWholeWords"/>
    </Grid>
    <Grid Grid.Row="1" x:Name="content" Background="Green">
        <!--Page content goes here-->
    </Grid>
</Grid>