2013-03-12 54 views
0

我有這個非常簡單的ChildWindow:Silverlight 4的內部的ScrollViewer的TextBlock被裁剪文本右側

<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從左側改爲中間,我會在塊的兩側獲得像素剪裁。

此外,如果我完全刪除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 Width。 – 2013-03-22 20:45:54