WPF XAML图像.源绑定支持的类型
本文关键字:支持 类型 绑定 XAML 图像 WPF | 更新日期: 2023-09-27 18:14:44
我有一个像这样的xaml:
<Image Source="{Binding MyImage}" />
Source属性在默认情况下(没有单独的转换器)可以绑定到哪些类型的最佳文档在哪里?
奖金:
.NET版本有区别吗?
我不想在XAML中绑定到视图模型。所以请不要像"图像"这样的代码绑定。
我发现了什么:
常识答案:
- 任何从ImageSource派生的类
MSDN文档大多是无用的:
MSDN图像控制
Source属性:获取或设置图像的ImageSource。
MSDN的形象。源属性
XAML Values
imageUri
系统。字符串
图像文件的URI
最有用的答案我发现是在。net源imagesourcecconverter .cs:
- string (Uri-like path)
- byte []
- <
- Uri/gh>
imagesourcecconverter的想法是正确的。一种可能的方法是实现您自己的Converter来支持不同类型的源。要做到这一点,我们必须编写一个转换器,它将不同的类型转换为ImageSource类型的对象。下面是第一种方法:
[ValueConversion(typeof(object), typeof(ImageSource))]
public class CustomImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
ImageSource returnSource = null;
if (value != null)
{
if (value is byte[])
{
//Your implementation of byte[] to ImageSource
returnSource = ...;
}
else if (value is Stream)
{
//Your implementation of Stream to ImageSource
returnSource = ...;
}
...
}
return returnSource;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
通过使用这个Converter的实例,您可以将不同的源类型作为对象传递给您的Image:
<Image Source="{Binding MyImage, Converter={StaticResource MyCustomImageConverter}}"/>