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

C# WPF在图像源中添加文件扩展名,c#,wpf,xaml,blend,C#,Wpf,Xaml,Blend,我正在Blend中进行一个WPF/XAML项目,我有两个项目: 值为“TSM”的TextBlockDesign 形象 我需要图像的图像源是TSM.png 我需要从文本框 因此,Imagesource应该是[TextBox].png 如何才能做到这一点?您可能可以通过使用绑定和转换器来实现这一点 绑定从文本框中获取值,并使用转换器进行转换 试试这个: <Control.Resources> <my:ImageSourceConverter x:Key="sourceCon

我正在Blend中进行一个WPF/XAML项目,我有两个项目:

  • 值为“TSM”的TextBlockDesign

  • 形象

  • 我需要图像的图像源是
    TSM.png

    我需要从
    文本框

    因此,Imagesource应该是
    [TextBox].png


    如何才能做到这一点?

    您可能可以通过使用绑定和转换器来实现这一点

    绑定从文本框中获取值,并使用转换器进行转换

    试试这个:

    <Control.Resources>
        <my:ImageSourceConverter x:Key="sourceConv" />
    </Control.Resources>
    <TextBox x:Name="txtTSM" />
    ...
    <Image Source="{Binding Path=Text,ElementName=txtTSM,Converter={StaticResource sourceConv}}" />
    

    我有一个错误,但当添加时,我得到一个错误,告诉我ImageSourceConverter不存在。我确实创建了这个类并添加了xmlns:my=“clr namespace:WpfApplication1”我还需要什么吗?不,这应该足够了。我可能会想到两件事:要么类在
    WpfApplication1
    命名空间中不存在,要么你没有重新编译你的应用程序(这些类型的错误在构建应用程序后往往会消失)。我想我是对的,请看一下我的文件树;因此,您在.cs文件中提供的代码如下所示:;我知道转换器还不能工作,但我需要在继续之前让它工作。非常感谢你的帮助!我在C#工作了一段时间,但我还是个新手:)
    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();
        }
    }