ScrollViewer中的Silverlight 4 TextBlock正在剪切右侧的文本

时间:2013-03-12 20:49:59

标签: silverlight silverlight-4.0

我有这个非常简单的ChildWindow:

<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,但它没有帮助。滚动条本身没有踩到文本,文本只是在它到达块的右边时丢弃了一堆像素。有时,甚至整个字母都没有被剪裁。看到了什么?

另外,如果我将Horizo​​ntalAlignment从Left更改为Center,我会在块的两边进行像素剪裁。

另外,如果我完全删除了ScrollViewer,剪辑仍然存在,所以这也不是他的错。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

事实证明这是有效的:

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

据我所知,实际的罪魁祸首是明确设置的TextBlock Width。