当 WPF 中的文本太长时带有滑块的 TextBlock

TextBlock with a slider when text is too long in WPF

如题。我想用水平和垂直滑块创建 TextBlock,它会根据文本大小自动调整。 Google 只是向我显示 Slider 控件,这绝对不是我要找的。

有什么线索可以实现吗?

编辑

感谢这里的一些乐于助人的人,我得到了这个:

        <ScrollViewer Grid.Column="1" Style="{StaticResource MaterialDesignScrollViewer}">
            <TextBlock ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto" Text="{Binding Path=(SQLLog:LogDisplay.LogAdvanced)}" FontSize="12"/>
        </ScrollViewer>

出现垂直滚动条,水平没有。即使文本不适合 TextBlock.

您可以使用 ScrollViewer 及其 HorizontalScrollBarVisiblityVerticalScrollBarVisibility 属性。只需用它包围您的 TextBox

<ScrollViewer HorizontalScrollBarVisibility="Auto" 
              VerticalScrollBarVisibility="Auto"
              Height="100"
              Width="200">
    <TextBlock Text="{Binding MyFancyTextProperty}" 
               Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ScrollViewer}}, Path=Width}"
               TextWrapping="Wrap"/>
</ScrollViewer>

考虑将 TextWrapping="Wrap" 添加到您的 TextBlock,这样它的内容就不会最终显示在一行中。

如果您想随时显示滚动条,即使内容适合,将它们的值设置为 Visible:

HorizontalScrollBarVisibility="Visible" 
VerticalScrollBarVisibility="Visible"