C# 绑定字符串格式无效

C# 绑定字符串格式无效,c#,wpf,xaml,binding,string-formatting,C#,Wpf,Xaml,Binding,String Formatting,我有一个应用程序,当启动时,用户需要选择课程主题和课程名称。课程主题从软件应用程序数据文件夹中的文件夹中收集 我想像Word中的Office那样显示主题,例如,从中可以选择模板。在theme文件夹中有一个png,它是我想要显示的主题的图片。如果我像这样复制并粘贴直接路径: <Image Width="600" Height="400" HorizontalAlignment="Center" Source="C:\Users\james\AppData\Roaming\Jenison\

我有一个应用程序,当启动时,用户需要选择课程主题和课程名称。课程主题从软件应用程序数据文件夹中的文件夹中收集

我想像Word中的Office那样显示主题,例如,从中可以选择模板。在theme文件夹中有一个png,它是我想要显示的主题的图片。如果我像这样复制并粘贴直接路径:

<Image Width="600" Height="400" HorizontalAlignment="Center"   Source="C:\Users\james\AppData\Roaming\Jenison\Perform\Themes\TemplateThemes\JenisonOnyxFullScreen\thumbnail.png"    />

它很好用。但显然每个用户都有不同的用户名,所以我不能这样做。所以我试着这样做:

  <Image Width="600" Height="400" HorizontalAlignment="Center" Source="{Binding ThumbnailPath, StringFormat='pack://application:,,,/Themes/TemplateThemes/{0}'}"   />

绑定ThumbnailPath返回jenisonyxfullscreen\thumbnail.png,因此pack://application:,,,,/Themes/TemplateThemes/jenisonyxfullscreen\thumbnail.png,我还将其添加到一个文本块中,路径看起来很好。但图像并没有这样显示


任何帮助都将不胜感激

一位同事提出了一些第一次就很有效的建议。我在图像中添加了一个eventsetter,如下所示:

   <Image Width="450" Height="400"  HorizontalAlignment="Center" >
                            <Image.Style>
                                <Style TargetType="Image">
                                    <EventSetter Event="Loaded" Handler="ThemeImagePath">

                                    </EventSetter>
                                </Style>
                            </Image.Style>
                        </Image>

使用字符串格式的图像绑定如下所示

 <Image x:Name="im" Width="600" Height="400" HorizontalAlignment="Center"   Source="{Binding ElementName=test, Path=Text}"    />

  <TextBlock x:Name="test" Background="Red" Text="{Binding ThumbnailPath, StringFormat=pack://application:\,\,\,/WpfApplication1;component/Images/\{0\}}" HorizontalAlignment="Left" Margin="20,216,0,0" VerticalAlignment="Top" Height="43"/>


您不能将源代码绑定到DataContext属性吗?请尝试为您的图像添加一个ID,并在codebehind c#中添加源代码……我想我最终必须这样做,但按照完成所有工作的方式,这将需要相当多的工作。我已经回答了我的问题。不管怎样,都测试了上述内容,但它不起作用
 <Image x:Name="im" Width="600" Height="400" HorizontalAlignment="Center"   Source="{Binding ElementName=test, Path=Text}"    />

  <TextBlock x:Name="test" Background="Red" Text="{Binding ThumbnailPath, StringFormat=pack://application:\,\,\,/WpfApplication1;component/Images/\{0\}}" HorizontalAlignment="Left" Margin="20,216,0,0" VerticalAlignment="Top" Height="43"/>