我一直在嘗試在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垂直滾動,例如:使用? –