2013-03-12 3 views
0

меня это очень простой ChildWindow:Silverlight 4 TextBlock внутри ScrollViewer обрезает текст на правой

<Grid x:Name="LayoutRoot" Margin="2"> 
    <Grid.RowDefinitions> 
     <RowDefinition /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 

    <Button x:Name="CancelButton" Content="Cancel" Click="CancelButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,0,0" Grid.Row="1" /> 
    <Button x:Name="OKButton" Content="OK" Click="OKButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Margin="0,12,79,0" Grid.Row="1" /> 
    <ScrollViewer Width="378"> 
     <StackPanel> 
      <TextBlock x:Name="txtFracture" HorizontalAlignment="Left" Margin="10,10,10,10" TextWrapping="Wrap" VerticalAlignment="Top" Width="358"/> 
     </StackPanel> 
    </ScrollViewer> 
</Grid> 

Моя проблема заключается в том, что текст в TextBlock становится обрезается на правой стороне. (У меня изначально не было StackPanel, это был просто эксперимент.) Я добавил все больше и больше к Margin.Right, но это не помогает. Сама полоса прокрутки не наступает на текст, текст просто сбрасывает кучу пикселей по мере того, как он попадает справа от блока. Иногда даже целые письма не обрезаются. Вижу ничего?

Также, если я изменяю HorizontalAlignment слева от центра, я получаю отсечение по обеим сторонам блока.

Кроме того, если я вообще удаляю ScrollViewer, обрезка все еще существует, так что это тоже не его ошибка.

ответ

1

Оказывается, что это работает:

<ScrollViewer Width="378" > 
     <StackPanel> 
      <TextBlock x:Name="txtFracture" Margin="10,10,10,10" TextWrapping="Wrap" /> 
     </StackPanel> 
    </ScrollViewer> 

Насколько я могу судить, фактический виновник был явно установлен TextBlock Ширина.

1

Я замечаю, что ширина ширины texblock постоянна, и вам нужна маржа 10 со всех сторон. В этом случае ScrollViewer ScrollBar захватывает ваш TextBlock. Возможное решение: 1. Снимите ширину на текстовом блоке и установите выравнивание.

попробовать это

<ScrollViewer Width="378" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto"> 
     <TextBlock x:Name="txtFracture" HorizontalAlignment="Stretch" Margin="10,10,10,10" TextWrapping="Wrap" VerticalAlignment="Stretch" 
        Text="Testing"/> 
    </ScrollViewer> 
+0

Это решение работает - спасибо - но проблема не в том, что ScrollViewer (я упоминал в своем заявлении о проблемах, что я его вынул). Кажется, что проблема явно устанавливает ширину TextBlock. –

Смежные вопросы