0

我想要一个具有垂直滚动的文本块。我有以下 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>

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

4

2 回答 2

3

您在这里有几个选择。您可以TextWrapping=WrapTextBlock和Horizo​​ntalScrollingDisableScrollViewer设置,或者您可以TextWrapping在 TextBlock 上设置 并为您设置固定宽度,TextBlock或者您可以将其绑定MaxWidth到类似ActualWidthScrollViewerTextBlock MaxWidth="{Binding RelativeSource={RelativeSource AncestorType=ScrollViewer}, Path=ActualWidth}"

希望这会有所帮助,干杯!

于 2013-01-03T16:35:00.080 回答
1

添加一个行定义为 * 的网格以容纳您的 ScrollViewer 和 Auto 用于其他行(如页眉和页脚)。为 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}">
于 2016-07-13T17:44:43.190 回答