WPF在图像源中添加文件扩展名

时间:2014-01-18 19:40:18

标签: c# wpf xaml blend

我正在使用Blend的WPF / XAML项目,我有2个项目:

  1. TextBlockDesign,其值为“TSM”

  2. 图像

  3. 我需要图片的图片来源为TSM.png

    我需要从TSM

    获取textbox

    因此Imagesource应为[TextBox].png

    我怎样才能完成这项工作?

1 个答案:

答案 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();
    }
}