wpf textblock不会在tabcontrol中显示滚动条

时间:2017-09-11 16:34:34

标签: c# wpf scrollbar

我有一个带文本块的tabcontrol。我没做什么似乎让垂直滚动条工作。我用堆叠面板试了一下;然后只使用文本块内的scrollviewer选项而不是外部。奇怪的是水平滚动条工作正常。这显示了垂直滚动条,但未启用。如果我将两者都设置为自动,则即使文本比控件长,也不会显示垂直滚动。

<TabItem Header="Item Description" FontSize="14" FontWeight="DemiBold">
    <DockPanel>
        <ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Auto">
            <TextBlock Text="{Binding SelectedItemText}" Padding="5" FontSize="14" TextWrapping="Wrap"
                DockPanel.Dock="Top" Height="100"  MinHeight="100"
                HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
        </ScrollViewer>
    </DockPanel>
</TabItem>

Visual Studio 2017,wpf,mvvm

2 个答案:

答案 0 :(得分:1)

您可以使用只读ScrollViewer替换TextBlockTextBox

<TabItem Header="Item Description" FontSize="14" FontWeight="DemiBold">
    <DockPanel>
        <TextBox Text="{Binding SelectedItemText, Mode=OneWay}"
                             TextWrapping="Wrap"
                             Padding="5" FontSize="14"
                             IsReadOnly="True"
                             BorderThickness="0"
                             Height="100"
                             MinHeight="100"
                             AcceptsReturn="True"
                             SelectionBrush="{x:Null}"
                             Cursor="Arrow"
                             ScrollViewer.VerticalScrollBarVisibility="Auto"/>
    </DockPanel>
</TabItem>

答案 1 :(得分:0)

您已在ScrollViewer中启用了水平滚动功能。这意味着TextBlock中的文本将永远不会换行,因为它的父容器已赋予其无限宽度以水平增长。尝试将HorizontalScrollBarVisibility设置为Disabled - 这将强制文本块在水平用完房间时换行。文本增长超出ScrollViewer的垂直限制后,如果VerticalScrollBarVisibility设置为Auto,则垂直滚动条将变为可见;如果VerticalScrollBarVisibility设置为Visible,则垂直滚动条将变为启用状态{1}}。