在WPF中,当文字太长时,带滑块的TextBlock。

问题描述 投票:-1回答:2

如题。我想创建 TextBlock 有水平和垂直滑块,会根据文字大小自动调整。谷歌只是显示我 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.

c# wpf textblock
2个回答
1
投票

你可以使用一个 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这样它的内容就不会被显示在一行中。

enter image description here

如果你想在任何时候显示滚动条,即使内容合适,也要将其值设置为 Visible:

HorizontalScrollBarVisibility="Visible" 
VerticalScrollBarVisibility="Visible"
© www.soinside.com 2019 - 2024. All rights reserved.