我有一个网格,在那个网格中有几个带有其他元素的图像。我想为每个图像创建一个背景图像作为静态资源。我知道这并非不可能,所以请帮助我。例如(这不是正确的代码,这只是我想要实现的示例
<style x:key="myimage">
<Setter property="Image" value="images/loading.png"/>
</style>
<image style={staticresource myimage" source={binding someotherimage"/>
我有一个网格,在那个网格中有几个带有其他元素的图像。我想为每个图像创建一个背景图像作为静态资源。我知道这并非不可能,所以请帮助我。例如(这不是正确的代码,这只是我想要实现的示例
<style x:key="myimage">
<Setter property="Image" value="images/loading.png"/>
</style>
<image style={staticresource myimage" source={binding someotherimage"/>
我不明白这个问题,但也许你可以尝试这样的事情:(这是一个例子)
XAML
把它放在 PhoneApplicationPage 中:
xmlns:my="clr-namespace:YOURNAMESPACE"
<phone:PhoneApplicationPage.Resources>
<my:BinaryToImageSourceConverter x:Key="BinaryToImageSourceConverter1" />
</phone:PhoneApplicationPage.Resources>
把它放在你的网格中:
<Image Source="{Binding Path=Image, Converter={StaticResource BinaryToImageSourceConverter1}, ConverterParameter=Image, TargetNullValue='/Image/no-foto-60.png'}" Stretch="None" />
你必须实现类 BinaryToImageSourceConverter: IValueConverter
namespace YOURNAMESPACE
{
public class BinaryToImageSourceConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null && value is byte[])
{
try
{
var bytes = value as byte[];
var stream = new MemoryStream(bytes);
var image = new BitmapImage();
image.SetSource(stream);
stream.Close();
return image;
}
catch (Exception)
{ }
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}