你将不得不使用IValueConverter
继承人一个简单的例子在String.Format
传递作为转换器paramerter
public class StringFormatToImageSourceConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter is string)
{
return string.Format(parameter.ToString(), value);
}
return null;
}
public object ConvertBack(object value, Type targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
用法:
<XXXX.Resources>
<local:StringFormatToImageSourceConverter x:Key="StringToImage" />
</XXXX.Resources>
<Image Source="{Binding Path=Id, Converter={StaticResource StringToImage}
, ConverterParameter=../Images/{0}.jpg}" />
有一种方法将其全部保存在中3210通过使用不可见的TextBlock
来格式化字符串,但不是最佳实践。
<Grid>
<TextBlock x:Name="StringToImage" Visibility="Hidden" Text="{Binding Id, StringFormat=../Images/{0}.jpg}" />
<Image Source="{Binding Text, ElementName=StringToImage}"/>
</Grid>
使用转换器 – 2013-03-22 22:34:57
谢谢,希望能保持它的所有XAML ... – 2013-03-22 22:46:41
如果你想保持它所有在XAML中,你必须使用基于ID值DataTriggers。 DataTrigger>'。此外,使用PNG代替支持透明度。 –
2013-03-22 22:52:22