2012-04-11 77 views
2

在我的Windows Phone 7.1应用程序中,我有一个功能齐全的ListBox,它显示来自Web服务的数据。在ListBox我能够把图像并结合图像源以下xaml使用从Web服务返回的值:Windows Phone 7 - 来自URL的图像颜色叠加

<Image Source="{Binding WebImageUrl}" Width="60" Height="60" /> 

这个伟大的工程。但现在我试图用另一种颜色覆盖图像,并且要按照发布的here的SO问题进行操作。如果图像明确说明,这也很有用。如果我尝试绑定网址,它不起作用。

例如,代码:

<Rectangle Fill="Red" Width="60" Height="60"> 
    <Rectangle.OpacityMask> 
    <ImageBrush ImageSource="http://someurl.com/repository/images/icon100.png"/> 
    </Rectangle.OpacityMask> 
</Rectangle> 

作品。但是,代码:

<Rectangle Fill="Red" Width="60" Height="60"> 
    <Rectangle.OpacityMask> 
    <ImageBrush ImageSource="{Binding WebImageUrl}"/> 
    </Rectangle.OpacityMask> 
</Rectangle> 

没有。代码编译文件,但Visual Studio引发解析错误。

有什么办法让ImageBrush.ImageSource绑定到一个字符串?

任何想法将不胜感激。我一直在这一段时间没有运气。

干杯, 布雷特

+0

您是否在实际手机上测试了带有多个图像的列表框?直接绑定网址对于许多图像来说是一个糟糕的主意。 UI冻结以下载数据。 – 2012-04-11 15:04:10

+0

@lukas:我确实有图像下载工作。我在后台线程上执行所有操作,然后在完成下载时绑定列表框。硬编码的URL只是我知道的一个例子。我的问题是关于颜色叠加。为什么硬编码的网址能够正常工作,但绑定却不行? – Brett 2012-04-11 15:06:29

回答

1

- 删除 -

你原来的代码似乎是工作的罚款对我来说,有一个字符串属性,所以我看不出有什么问题......

+0

这看起来很简单,但我得到的错误:'ImageBrush'类型的值不能被添加到'UIElementCollection'类型的集合或字典中。有任何想法吗? – Brett 2012-04-11 15:22:30

+0

Ops,它不是ImageBrush,它是Image ...现在修复它! – 2012-04-11 15:47:30

+0

嗯,它的工作原理:-)虽然这不是我想要的。我的原始代码(使用硬编码的uri)仅以纯色覆盖图像的非透明区域。这是我的目标。你的例子(尽管很简单)覆盖整个广场,不透明度为0.5。我感谢您花时间尽管! – Brett 2012-04-11 15:57:02