Обтекание текстом в Silverlight 4 не работает - PullRequest
1 голос
/ 16 июня 2011

Я хочу сделать перенос текста и показать вертикальную полосу прокрутки, когда у меня больше, чем строка текста, но текст вообще не переносится. это мой 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 Ответ

3 голосов
/ 16 июня 2011

То, что здесь происходит, заключается в том, что ваша внутренняя 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>
...