In meiner Windows Phone 7.1 App habe ich eine voll funktionsfähige ListBox
, die Daten von einem Web-Service anzeigt. Im ListBox
war ich in der Lage, ein Bild zu setzen und bindet die Bildquelle auf einen Wert von dem Webdienst zurückgegeben folgenden xaml
mit:Windows Phone 7 - Bild Farbüberlagerung von URL
<Image Source="{Binding WebImageUrl}" Width="60" Height="60" />
Dies funktioniert gut. Aber jetzt versuche ich, das Bild mit einer anderen Farbe zu überlagern, und dazu befolge ich die SO Frage here. Dies funktioniert auch toll wenn das Bild explizit angegeben wird. Und es funktioniert nicht, wenn ich versuche, die URL zu binden.
Zum Beispiel der Code:
<Rectangle Fill="Red" Width="60" Height="60">
<Rectangle.OpacityMask>
<ImageBrush ImageSource="http://someurl.com/repository/images/icon100.png"/>
</Rectangle.OpacityMask>
</Rectangle>
funktioniert. Aber der Code:
<Rectangle Fill="Red" Width="60" Height="60">
<Rectangle.OpacityMask>
<ImageBrush ImageSource="{Binding WebImageUrl}"/>
</Rectangle.OpacityMask>
</Rectangle>
nicht. Der Code kompiliert die Datei, Visual Studio löst jedoch einen Analysefehler aus.
Gibt es eine Möglichkeit, ImageBrush.ImageSource an eine Zeichenfolge binden zu lassen ???
Alle Gedanken würden sehr geschätzt werden. Ich war eine Weile ohne Glück dabei.
Cheers, Brett
Haben Sie Listbox mit mehreren Bildern auf dem tatsächlichen Telefon getestet? Binding URL direkt ist eine schlechte Idee mit vielen Bildern. Die Benutzeroberfläche friert zum Herunterladen der Daten ein. –
@lukas: Ich habe es mit dem Herunterladen der Bilder arbeiten. Ich mache alles in einem Hintergrundthread und binde dann die Listbox nach Beendigung der Downloads. Die hartcodierte URL ist nur ein Beispiel, von dem ich weiß, dass es funktioniert. Meine Frage betrifft wirklich die Farbüberlagerung. Warum funktioniert eine fest codierte URL, aber eine Bindung nicht? – Brett