我一直在尝试在Windows 8 metro风格的应用程序中工作,我只是无法得到正确的属性,它的工作。这是我想要发生的事情:在metro风格的统一的文本缩放XAML ScrollViewer
我有一个包含StackPanel的ScrollViewer。 RichTextBoxes被添加到堆栈面板(来自服务器的流式文本数据)。它有效地像一个控制台。所以我的布局大致是这样的:
<ScrollViewer>
<StackPanel x:Name="outputStackPanel"/>
</ScrollViewer>
我期望的行为是这样的:我 希望文本在与屏幕尺寸的水平方向均匀扩展,然后在ScrollViewer中垂直滚动。也就是说,我使用的字体是固定宽度的字体,无论屏幕大小如何,我都希望显示相同数量的ascii字符。
此外,我有一个应用程序选项来包装文本或不包装文本到屏幕上。这意味着,当文本包装时,它应该旋转到固定的屏幕宽度,但是当它不是时,ScrollViewer应该可以水平滚动,但是在滚动时,在任何点大致相同数量的字符应该水平可见。
我尝试了几种方法来做到这一点,并没有一个成功。我试着加入了视框,就像这样:
<ScrollViewer>
<Viewbox Stretch="UniformToFill" StretchDirection="UpOnly">
<StackPanel x:Name="outputStackPanel" />
</ViewBox>
</ScrollViewer>
虽然这看起来在获得出现在合适的尺寸文字方面的工作,它不允许文本换行,当文本换行是。内容在右侧简单切断。
我目前的解决方法是检查屏幕分辨率并对字体大小进行粗略估计以使其正确显示,但这并不理想,因为它不是确切的,因此不同的分辨率会获得大量不同的可见字符并且为了本申请的目的,可见字符的数量是重要的。
您是否仅限ScrollViewer垂直滚动,例如:使用? –