这样可以正常工作,并在字符串中正确插入不间断空格:
<TextBlock Text="Non Breaking Text Here"></TextBlock>
但我真正需要的是在数据绑定期间用不间断空格替换空格。所以我写了一个简单的值转换器,用“ 
”替换空格。它确实用“ 
”替换空格,但“ 
”按字面显示,而不是显示为不间断的空格。这是我的转换器:
public class SpaceToNbspConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToString().Replace(" ", " ");
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
有人知道为什么它在XAML中有效,但在代码中却不行吗?
答案 0 :(得分:14)
您是否尝试过return value.ToString().Replace(' ', System.Convert.ToChar(160));
?
答案 1 :(得分:11)
在代码中,转义Unicode字符的语法与XAML中的语法不同:
XAML:  
C#: \x00A0
所以这应该在代码中起作用:
return value.ToString().Replace(" ", "\xA0");
答案 2 :(得分:4)
Char工作的原因是字符串不是 - 是字符串在渲染时被转义。