0

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

WrapWithOverflow将单词换行,但如果一个单词比它长,TextBlock它会将其剪短,而不是将单词换行。

我将如何使用 XAML 并最好使用 Blend 来实现这一点?

4

1 回答 1

0

所以我有一种解决方法。

  1. 设置剪切路径。通过创建Rectangle与 相同的大小来执行此操作TextBlock,选择第TextBlock一个然后 Ctrl 选择Rectangle第二个并选择“对象 -> 路径 -> 制作剪切路径”。
  2. 在 Visual Studio 中的代码隐藏上创建一个IValueConverter(因为文本是数据绑定的)。如果文本未绑定数据,则手动格式化。转换器插入换行符代替空格 - 由于各种原因,这并不理想,但对于我的目的来说已经足够了。我最终得到的代码显示在底部。
  3. 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;    
    }
}
于 2012-10-17T21:46:02.257 回答