use*_*352 2 c# wpf image imagesource
我在项目的一个文件夹中有一堆*.tif图像..我还在我的visual studio项目中添加了一个位于"Templates\Team Logos"的文件夹中
现在如果我设置一个图像源来说:
<Image Name="UL_Team1_Image" Grid.Row="1" Grid.Column="1" Margin="5" Source="Team Logos\ARI.tif"></Image>
Run Code Online (Sandbox Code Playgroud)
这样可行.但是现在如果我尝试:
UL_ImageArr[a].Source = (ImageSource)new ImageSourceConverter().ConvertFromString("Team Logos\\ARI.tif");
Run Code Online (Sandbox Code Playgroud)
这不起作用.是什么赋予了?我得到一个NullReferenceException ...但它对我没有意义?
您可以在代码隐藏中使用它,我认为它比使用它更快ImageSourceConverter.
BitmapImage bimage = new BitmapImage();
bimage.BeginInit();
bimage.UriSource = new Uri("Team Logos\\ARI.tif", UriKind.Relative);
bimage.EndInit();
UL_ImageArr[a].Source = bimage
Run Code Online (Sandbox Code Playgroud)
如果你想使用ImageSourceConverter你必须通过pack-uri参考图像文件:
var converter = new ImageSourceConverter();
UL_ImageArr[a].Source =
(ImageSource)converter.ConvertFromString("pack://application:,,,/Team Logos/ARI.tif");
Run Code Online (Sandbox Code Playgroud)
在后面的代码中,您通常会编写完整的包 URI来引用图像资源。
所以你要么写
UL_ImageArr[a].Source = (ImageSource)new ImageSourceConverter().ConvertFromString(
"pack://application:,,,/Team Logos/ARI.tif");
Run Code Online (Sandbox Code Playgroud)
或者
UL_ImageArr[a].Source = new BitmapImage(new Uri(
"pack://application:,,,/Team Logos/ARI.tif"));
Run Code Online (Sandbox Code Playgroud)
或者
UL_ImageArr[a].Source = BitmapFrame.Create(new Uri(
"pack://application:,,,/Team Logos/ARI.tif"));
Run Code Online (Sandbox Code Playgroud)