文本框';s滚动条在应该';t
本文关键字:文本 滚动条 | 更新日期: 2023-09-27 18:24:11
我创建了一个带有滚动条的文本框,该滚动条应始终处于启用状态(在WORDWRAP上!)当然,默认情况下,它只在需要时启用(文本长度>文本框的宽度)。
出于某种原因,在一个线性文本框上,滚动条看起来总是启用的(也在不需要的时候)。这不会发生在多行文本框上。
知道为什么吗?
这是代码:
<TextBox x:Name="_textBox" Visibility="Visible" xml:space="preserve"
Background="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=Background}"
Foreground="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=Foreground}"
FontFamily="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=FontFamily}"
BorderBrush="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},Path=BorderBrush}"
KeyUp="_textBox_KeyUp"
PreviewTextInput="_textBox_PreviewTextInput"
DataObject.Pasting="_textBox_Pasting"
VerticalContentAlignment="Top"
PreviewKeyDown="TextBox_OnPreviewKeyDown"
TextWrapping="Wrap"
ScrollViewer.VerticalScrollBarVisibility="Visible"
/>
将VerticalScrollBarVisibility
设置为Visible
将确保滚动条始终可见,即使内容没有超出界限。
相反,将其设置为Auto
,这将改变行为,使滚动条仅在内容超出界限时可见。(文本太大,TextBox
无法显示)
这里有一个非常简单的例子:
<TextBox Text="..."
TextWrapping="Wrap"
ScrollViewer.VerticalScrollBarVisibility="Auto"/>
默认情况下,VerticalScrollBarVisibility
无论如何都设置为Auto
,因此您可以完全删除这一行,因为不需要它。
TL;DR
移除ScrollViewer.VerticalScrollBarVisibility="Visible"
。