滚动查看器和滚动方向(垂直vs水平)

本文关键字:滚动 垂直 vs 水平 方向 | 更新日期: 2023-09-27 17:50:38

我想要一个具有垂直滚动的文本块。我有以下XAML

        <ScrollViewer HorizontalAlignment="Left" Height="90" Margin="10,416,0,0" VerticalAlignment="Top" Width="463" VerticalScrollBarVisibility="Auto"  HorizontalScrollBarVisibility="Auto" CanContentScroll="True" >
        <TextBlock Name="txtConfigPath" Text="" >                
        </TextBlock>
    </ScrollViewer>

这会产生一个只能水平滚动的文本块。我已经尝试了我能想到的所有方法,但这个控件只想水平滚动

滚动查看器和滚动方向(垂直vs水平)

这里有几个选项。你可以在TextBlockDisable上设置TextWrapping=Wrap,在ScrollViewer上设置HorizontalScrolling,或者你可以在TextBlock上设置TextWrapping,并为TextBlock设置固定的宽度,或者你可以将MaxWidth绑定到ScrollViewerActualWidth,如TextBlock MaxWidth="{Binding RelativeSource={RelativeSource AncestorType=ScrollViewer}, Path=ActualWidth}"

希望这有帮助,干杯!

添加一个行定义为*的网格,以容纳ScrollViewer和Auto用于其他行(如Header和footer)。为ScrollViewer添加以下代码:

<UserControl ...>
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <TextBlock><Run Text="Some text"/></TextBlock>
    <ScrollViewer 
        Grid.Row="1" 
        CanContentScroll="True" 
        VerticalScrollBarVisibility="Auto" 
        HorizontalScrollBarVisibility="Disabled" 
        MinWidth="{Binding ActualWidth, 
            BindsDirectlyToSource=True, 
            ElementName=userControl, Mode=OneWay}">