在这里查看答案:
字符串属性中的换行符
在您的情况下,您需要编写一个转换器(实现 IValueConverter 的东西),将包含 \r\n 的字符串数据转换为编码实体,即和 . 然后只需在您的绑定上使用该转换器。
public class EncodeCRLFConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string stringtoconvert = value as string;
if (input != null))
{
// Note there are different ways to do the replacement, this is
// just a very simplistic method.
stringtoconvert = stringtoconvert.Replace( "\r", "
" );
stringtoconvert = stringtoconvert.Replace( "\n", "
" );
return stringtoconvert;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new Exception("The method or operation is not implemented.");
}
}
在某处创建转换器的实例……例如,通常在 .Resources 中……(在此示例中,我刚刚使用了 Window,因为我不知道您的 TextBlock 在里面)。
<Window.Resources>
<EncodeCRLFConverter x:Key="strconv"/>
<Window.Resources>
<TextBlock Height="Auto" TextWrapping="Wrap" Name="Blurb" Text="{Binding Bio, Converter={StaticResource strconv}}" />