我在TextBlock
内有一个ScrollViewer
,与其窗口的拉伸对齐。我需要TextBlock
表现如下:
TextBlock
需要保留MinWidth
并且应显示滚动条TextWrapping
或TextTrimming
应该正常运作如何获得此功能?
我尝试了几种方法,包括绑定到ActualWidth
& ActualHeight
,但无法让它发挥作用。
这不是那么困难,我错过了什么?
这是放在XamlPad中的代码示例(尚未设置MinWidth):
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<TextBlock TextWrapping="Wrap" Text="Some really long text that should probably wordwrap when you resize the window." />
</ScrollViewer>
</Window>
答案 0 :(得分:26)
这有效:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Name="Scroller">
<TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="100" Width="{Binding ElementName=Scroller, Path=ViewportWidth}"
TextWrapping="Wrap" Text="Some really long text that should probably wordwrap when you resize the window." />
</ScrollViewer>
</Window>
答案 1 :(得分:2)
没有更多细节,我能做的最好的事情就是提供标准的方法。基本上,在滚动查看器中托管您的元素(具有最小大小);当scrollviewer的大小调整得足够小,使得元素不能完全适合它时,它会自动显示滚动条。例如:
<ScrollViewer>
<Button MinWidth="100" MinHeight="50"/>
</ScrollViewer>
答案 2 :(得分:0)
如果您的布局更复杂且无法绑定到ScrollViewer
,那么答案https://stackoverflow.com/a/41281041/254109中的IgnoreWidthControl
可能会有所帮助。