首先我要说的是,我已经尝试了this并查看了this(这只是第一个问题)。这些都是WPF的绝佳解决方案。正如我们所知道的那样,Windows Phone 7缺少一些不错的边缘情况。
我的项目似乎注定缺乏动态图像。我有一个标签,我试图绑定到资源文件,它无法正常工作。我尝试了以下两种方法,似乎都没有效果。
首先,流行的转换器。获取URI字符串并返回位图图像。显然它适用于WPF,但我不能使它工作。
public class BitmapImageConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
try
{
return new BitmapImage(new Uri((string)value));
}
catch
{
return new BitmapImage();
}
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
然后是BitmapImage属性。真的没想到这个会起作用,也没有让人失望。
public BitmapImage ImgSource
{
get
{
// ImgURI is a URI to the image.
BitmapImage newImg = new BitmapImage(new Uri(ImgURI));
// Tried ALL the creation options. :(
//newImg.CreateOptions = BitmapCreateOptions.None;
return newImg;
}
}
这是我用于转换器的XAML(在别处定义)....
<Image Name="imgMap"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Source="{Binding ImgURI, Mode=OneWay, Converter={StaticResource bitmapConverter}}"
Stretch="None"/>
我调试了它,以至于我知道每个绑定都返回它应该的内容。调用转换器并执行我认为应该执行的操作。 ImgURI总是返回格式为“/MyNamespace ;component/Images/MyImg.jpg”的字符串,ImgSource总是一个bitmapImage。所有图像都有一个BuildAction“资源”。
我希望我遗漏了一些明显的东西。感谢您查看我的问题,如果需要进一步的信息,请发表评论。
答案 0 :(得分:3)
您应该使用Content
而非Resource
的构建操作。
答案 1 :(得分:1)
我怀疑这是您的问题,但请确保您将UriKind.Relative
传递给Uri
构造函数。