2012-10-17 53 views
0

我正在使用Expression Blend 4併爲Windows Phone 7.1進行開發。我想爲Wrap屬性實現類似WrapWithOverflow的屬性,但是此選項僅在WPF中根據Blend幫助文件可用 - 唯一可用的行爲是WrapNoWrap如何在Windows Phone開發的TextBlocks上實現WrapWithOverflow行爲?

WrapWithOverflow將單詞換行放在新行上,但如果單詞長於TextBlock,它會將其縮短,而不是將單詞放到換行上。

我該如何使用XAML實現這一點,並最好使用Blend?

回答

0

所以我有一種解決方法。

  1. 設置一個剪切路徑。通過創建一個大小與TextBlock相同的Rectangle,首先選擇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;  
    } 
} 
相關問題