WPF 中不显示具有正确路径的图像
Image with correct path doesn't show in WPF
我有以下内容UI:
单击左侧显示“维也纳之旅”的列表框后;在右边它应该显示一个图像。我已经通过以下方式绑定了图像源:
<Image Grid.Row="1" Source="{Binding (vm:MainViewModel.AddTourViewModel).SelectedTour.RouteImage, Converter={StaticResource AddTourViewModel}}"/>
我现在遇到的问题是,图像路径是正确的,但是在 UI 中图像本身没有显示。
这是我在视图模型中转换图像的方式:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null
? new BitmapImage() { UriSource = new Uri(value.ToString(), UriKind.Relative) }
: new BitmapImage() { UriSource = new Uri("error.jpg", UriKind.Relative) };
}
点击“维也纳之旅”后的值指向如下图所示的图片路径:
BitmapImage实现了ISupportInitialize
接口,这意味着当你通过设置它的UriSource
属性来初始化一个BitmapImage时,你必须调用BeginInit()
和EndInit()
方法。
为方便起见,有一个带有Uri
参数的构造函数:
public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null
? new BitmapImage(new Uri(value.ToString(), UriKind.Relative))
: new BitmapImage(new Uri(@"error.jpg", UriKind.Relative));
}
或者,使用 BitmapFrame class:
public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null
? BitmapFrame.Create(new Uri(value.ToString(), UriKind.Relative))
: BitmapFrame.Create(new Uri(@"error.jpg", UriKind.Relative));
}
我有以下内容UI:
单击左侧显示“维也纳之旅”的列表框后;在右边它应该显示一个图像。我已经通过以下方式绑定了图像源:
<Image Grid.Row="1" Source="{Binding (vm:MainViewModel.AddTourViewModel).SelectedTour.RouteImage, Converter={StaticResource AddTourViewModel}}"/>
我现在遇到的问题是,图像路径是正确的,但是在 UI 中图像本身没有显示。
这是我在视图模型中转换图像的方式:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null
? new BitmapImage() { UriSource = new Uri(value.ToString(), UriKind.Relative) }
: new BitmapImage() { UriSource = new Uri("error.jpg", UriKind.Relative) };
}
点击“维也纳之旅”后的值指向如下图所示的图片路径:
BitmapImage实现了ISupportInitialize
接口,这意味着当你通过设置它的UriSource
属性来初始化一个BitmapImage时,你必须调用BeginInit()
和EndInit()
方法。
为方便起见,有一个带有Uri
参数的构造函数:
public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null
? new BitmapImage(new Uri(value.ToString(), UriKind.Relative))
: new BitmapImage(new Uri(@"error.jpg", UriKind.Relative));
}
或者,使用 BitmapFrame class:
public object Convert(
object value, Type targetType, object parameter, CultureInfo culture)
{
return value != null
? BitmapFrame.Create(new Uri(value.ToString(), UriKind.Relative))
: BitmapFrame.Create(new Uri(@"error.jpg", UriKind.Relative));
}