2015-03-03 70 views
-1

我需要在文本框文本被修剪时显示文本框的工具提示。我使用下面的转换器修剪了文本框文本。TextTrimming到wpf文本框的可见性转换器

public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
{ 
    string text = values[0].ToString(); 
    double width = Double.Parse(values[1].ToString());   
    TextBlock tb = new TextBlock(); 
    StringBuilder sb = new StringBuilder(); 
    foreach (char c in text) 
    { 
     sb.Append(c); 
     tb.Text = sb.ToString(); 
     tb.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); 
     if (width < tb.DesiredSize.Width + 170) 
     { 
      sb.Append("..."); 
      break; 
      } 
     } 
     return sb.ToString(); 

} 

在此先感谢。

+2

问题是什么? – Jens 2015-03-03 13:08:19

+0

当文本被修剪时,我需要为wpf文本框启用工具提示。 – 2015-03-03 13:22:48

+1

我会让另一个转换器设置文本框的工具提示。 – Jens 2015-03-03 13:25:13

回答

0

只需制作另一个返回布尔值的转换器,如果文本必须被修剪,则返回true;否则返回false,具体取决于您在发布的转换器中的规格。 (或者你想绑定的任何类型的属性而不是布尔值,不知道你想在这里设置什么)