我正在使用Blend的WPF / XAML项目,我有2个项目:
TextBlockDesign,其值为“TSM”
图像
我需要图片的图片来源为TSM.png
我需要从TSM
textbox
因此Imagesource应为[TextBox].png
我怎样才能完成这项工作?
答案 0 :(得分:0)
您可以通过使用绑定和转换器来实现这一目标。
Binding从文本框中获取值并使用转换器转换它。
试试这个:
<Control.Resources>
<my:ImageSourceConverter x:Key="sourceConv" />
</Control.Resources>
<TextBox x:Name="txtTSM" />
...
<Image Source="{Binding Path=Text,ElementName=txtTSM,Converter={StaticResource sourceConv}}" />
转换器类可能如下所示。请注意,您必须自己将字符串实现为ImageSource转换。我现在无法访问VS,所以可能会有一些小错误。
public class ImageSourceConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// convert string to image source
String filename = string.Format("{0}.{1}",(string)value,"png");
return new ImageSource(filename);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}