我想在TextBox中呈现包含换行符的字符串,但我希望TextBox将其显示为单行 . 删除换行符不是一种选择;在编辑文本之后,还需要保留它们 .
在下面的示例中,在第一个TextBox中键入时,文本必须在第二个TextBox中以单行显示 . 在第二个TextBox中编辑文本时,必须保留第一个TextBox中的换行符 .
有谁知道这是否可能?
<Grid Background="AliceBlue">
<Grid.RowDefinitions>
<RowDefinition Height="100"/>
<RowDefinition Height="100"/>
</Grid.RowDefinitions>
<TextBox x:Name="FirstTextBox"
AcceptsReturn="True"
TextWrapping="Wrap"
Text="{Binding MyString}"
Width="150"/>
<TextBox x:Name="SecondTextBox"
Grid.Row="1"
AcceptsReturn="False"
TextWrapping="NoWrap"
Text="{Binding MyString}"
VerticalAlignment="Top"/>
</Grid>
2 回答
我创建了一个适用于我的场景的绑定转换器:换行符被替换为unicode零宽度空格字符(U 200B):
您可以使用
\n
(使用Binding.Converter)对换行进行文本编码,然后您可以根据需要(在ConvertBack
中)将这些序列替换为实际换行符,但在可用性方面可能会有问题 .