此问题的关键是通过TextBlock.IsTextTrimmed
属性来完成转换。我们可以在Tooltip = null
时设置IsTextTrimmed = False
,在TextBlock.Text
时将工具提示设置为IsTextTrimmed = True
。
我们不能使用ConverterParameter
传递变化的值(TextBlock.Text
),因为它是一个简单的对象,而不是DependencyProperty
,因此我们需要创建一个可以容纳{值{1}}。
转换器
TextBlock.Text
用法
public class TrimConverter : DependencyObject,IValueConverter
{
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty,value); }
}
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text",typeof(string),typeof(TrimConverter),new PropertyMetadata(""));
public object Convert(object value,Type targetType,object parameter,string language)
{
bool isTrim = System.Convert.ToBoolean(value);
return isTrim ? Text : null;
}
public object ConvertBack(object value,string language)
{
throw new NotImplementedException();
}
}
这应该可以解决您的问题。
最诚挚的问候。
本文链接:https://www.f2er.com/3007088.html