Конечно!
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<sys:String x:Key="MyData">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse vitae eros nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec augue metus, iaculis id porta non, pellentesque quis turpis. Donec rutrum diam eget tortor bibendum vel blandit odio iaculis. Curabitur pretium adipiscing orci, ut pulvinar justo vehicula non. Mauris nec ipsum velit. Sed et auctor nibh. Proin ac ultricies tellus.</sys:String>
<local:MyTruncateConverter x:Key="MyConverter" />
</Window.Resources>
<TextBlock Text="{Binding Source={StaticResource MyData},
Converter={StaticResource MyConverter},
ConverterParameter=50}"
TextWrapping="Wrap" />
</Window>
Тогда используйте этот конвертер:
public class MyTruncateConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return string.Empty;
if (parameter == null)
return value;
int _MaxLength;
if (!int.TryParse(parameter.ToString(), out _MaxLength))
return value;
var _String = value.ToString();
if (_String.Length > _MaxLength)
_String = _String.Substring(0, _MaxLength) + "...";
return _String;
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Похоже:
Удачи!