Windows phone 7 如何在Windows Phone开发的文本块上实现类似WrapWithOverflow的行为?

Windows phone 7 如何在Windows Phone开发的文本块上实现类似WrapWithOverflow的行为?,windows-phone-7,xaml,expression-blend,Windows Phone 7,Xaml,Expression Blend,我在Expression Blend 4中工作,并为Windows Phone 7.1进行开发。我想为Wrap属性实现类似WrapWithOverflow的功能,但是根据混合帮助文件,此选项仅在WPF中可用-可用的唯一行为是Wrap和NoWrap WrapWithOverflow将单词包装到新行上,但如果单词比TextBlock长,则会将其剪短,而不是将单词拆分到新行上 我如何使用XAML实现这一点,最好使用Blend?因此我有一种解决方法 设置剪辑路径。为此,请创建一个与文本块大小相同的矩形,

我在Expression Blend 4中工作,并为Windows Phone 7.1进行开发。我想为
Wrap
属性实现类似
WrapWithOverflow
的功能,但是根据混合帮助文件,此选项仅在WPF中可用-可用的唯一行为是
Wrap
NoWrap

WrapWithOverflow
将单词包装到新行上,但如果单词比
TextBlock
长,则会将其剪短,而不是将单词拆分到新行上


我如何使用XAML实现这一点,最好使用Blend?

因此我有一种解决方法

  • 设置剪辑路径。为此,请创建一个与
    文本块
    大小相同的
    矩形
    ,先选择
    文本块
    ,然后按Ctrl键选择
    矩形
    ,然后选择“对象->路径->生成剪辑路径”
  • 在Visual Studio中的代码隐藏上创建一个
    IValueConverter
    (因为文本是数据绑定的)。如果文本没有数据绑定,则手动设置格式。转换器在空格处插入换行符-由于各种原因,这并不理想,但对于我来说已经足够好了。我最后得到的代码显示在底部
  • 在绑定对话框的高级部分插入
    IValueConvertor
  • public class WordsOnNewlines : System.Windows.Data.IValueConverter
    {
        public object Convert(object value, Type targetType,
            object parameter, CultureInfo cultureInfo)
        {
            string s = (string)value;
            return s.Replace(" ", System.Environment.NewLine);
        }
    
        public object ConvertBack(object value, Type targetType,
            object parameter, CultureInfo cultureInfo)
        {
            return null;    
        }
    }