文字包装在silverlight 4中不起作用

时间:2011-06-16 11:51:40

标签: silverlight-4.0 textblock textwrapping

我想做文本换行并显示一个垂直滚动条,当我有多行文本但文本根本没有被包装。这是我的xaml

<StackPanel Name="panel">
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition />
                </Grid.RowDefinitions>

                <StackPanel
                    Grid.Row="0"
                    Grid.Column="0"
                    Orientation="Horizontal"
                    Background="Yellow">

                <TextBlock  Text="Text:" />
                <ScrollViewer                                    
                    BorderThickness="0"
                    Height="33"                                    
                    VerticalScrollBarVisibility="Auto"                                
                    HorizontalScrollBarVisibility="Disabled">                    
                    <TextBlock TextWrapping="Wrap" Text="{Binding Name}"/>
                </ScrollViewer>
                </StackPanel>
            </Grid>
        </StackPanel>

有人可以告诉我为什么文字不会在屏幕的末尾换行吗?

由于

1 个答案:

答案 0 :(得分:3)

这里发生的是您的内部StackPanel(以及每个StackPanel)不会将其子项约束到StackPanel中的“可见”空间。因此,滚动查看器感觉具有无限空间,文本块也是如此。网格本身可以做到:

<StackPanel Name="panel">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <TextBlock  Text="Text:" />
        <ScrollViewer Grid.Column="1"
                                    BorderThickness="0"
                                    Height="33"
                                    VerticalScrollBarVisibility="Auto"
                                    HorizontalScrollBarVisibility="Disabled">
            <TextBlock TextWrapping="Wrap"
                                    Text="YourText" />
        </ScrollViewer>
    </Grid>
</StackPanel>