如何通过StringFormat在wpf中填充字符串?我正在使用多绑定:
<MultiBinding StringFormat="Name: {0}, age: {1}">
<Binding Path="Name"/>
<Binding Path="Age"/>
</MultiBinding>
有没有办法使字符串填充,以便例如列年龄从位置50开始?我正在寻找类似于的东西
string.PadLeft(50)
<MultiBinding StringFormat="Name: {0}, age: {1,50}">
<Binding Path="Name"/>
<Binding Path="Age"/>
</MultiBinding>
Age
值并没有从50位置开始,相反,在Name
值后面,Age
值会用50个空格进行填充。MultiBinding
中确切起始位置的方法。此外,这只会填充实际值,而不是age
文本。转换器(Converter)
:public class PaddingConverter : IMultiValueConverter
{
public int Width { get; set; }
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
string name = values[0] as string;
string age = values[1] as string;
var text = String.Format("Name: {0}, age: {1}", name, age);
return text.PadLeft(Width);
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
并且你的XAML:
<local:PaddingConverter x:Key="PaddingConverter" Width="50"/>
<MultiBinding Converter={StaticResource PaddingConverter}>
<Binding Path="Name"/>
<Binding Path="Age"/>
</MultiBinding>