当窗口的宽度小于第一列中文本的宽度时,我需要显示水平滚动条。
<Window x:Class="Sample.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Column="0" >
<TextBlock Text="Very looooong text" FontSize="30"/>
</ScrollViewer>
<Border Grid.Column="1" Background="Red"/>
<Border Grid.Column="2" Background="Green"/>
</Grid>
</Window>
最好的方法是什么?
- 编辑 当用户首先从右向左拖动窗口的右边框时,我需要缩小第三列直到它消失,然后我需要缩小第二列直到它消失,然后当窗口的宽度小于文本时需要显示水平滚动条
答案 0 :(得分:0)
您可以将第一列的宽度设置为静态值(300),以便在调整窗口大小时不会更改列的宽度。如果设置动态值,ScrollViewer将按预期工作。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300*" MaxWidth="300"/>
<ColumnDefinition MinWidth="80" MaxWidth="80"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ScrollViewer Grid.Column="0" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Hidden" >
<TextBlock Text="Very looooong text" FontSize="30"/>
</ScrollViewer>
<Border Grid.Column="1" Background="Red"/>
<Border Grid.Column="2" Background="Green"/>
</Grid>
PS:ScrollViewer的宽度必须小于TextBlock,并且滚动将起作用