各エントリのサムネイル画像を含むwp7リストボックス(カスタムアイテムテンプレート付き)にデータをバインドしようとしています。問題は - 私は1つの問題に遭遇しています - リンクされたイメージが404ページにリダイレクトされたとき - 結果として空のイメージが得られ、率直に - ロードされたデータが正しいイメージであるかどうかをチェックする方法はわかりません...ここで私が今使っているコードです:wp7 - 画像がロードされたかどうかを確認する方法
foreach (var item in RssFeedItems)
{
var inputString = item.Description;
var tempImageList = new List<string>();
var inputStringBuilt = new StringBuilder(item.Description);
var temp = 1;
while (temp > 0)
{
var img = inputString.IndexOf("<img", StringComparison.Ordinal);
var src = inputString.IndexOf("src", img, StringComparison.Ordinal);
var quot = inputString.IndexOf('"', src + 5);
var len = quot - (src + 5);
var sub = len > 0 ? inputString.Substring(src + 5, len) : null;
tempImageList.Add(sub);
var closingBracket = inputString.IndexOf(">", src, StringComparison.Ordinal);
inputStringBuilt.Clear();
inputStringBuilt.Append(inputString);
inputStringBuilt.Remove(img, closingBracket - img);
inputString = inputStringBuilt.ToString();
temp = inputString.IndexOf("<img", StringComparison.Ordinal);
}
item.MiniImage = tempImageList[0] ?? "ApplicationIcon.png";
var f = tempImageList.IndexOf(null) - 1;
while (f >= 0)
{
PostImages.Add(tempImageList[f]);
f--;
}
tempImageList.Clear();
FirstListBox.Items.Add(item);
}
任意のアイデア:
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Grid Height="62"
Width="62">
<Image Stretch="UniformToFill"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Image.Source>
<BitmapImage UriSource="{Binding MiniImage}"
CreateOptions="DelayCreation, BackgroundCreation" />
</Image.Source>
</Image>
</Grid>
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock Text="{Binding Title}"
Margin="12,4,0,0"
FontSize="26"
FontFamily="Segoe WP Bold" />
<TextBlock Text="{Binding PubDate}"
Margin="12,0,0,9"
FontSize="16"
FontStyle="Italic"
Padding="5,0,0,0"
FontFamily="Segoe WP"
Opacity="0.5" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
、ここでは、背後にあるコードですか?
hmmm ...おそらくばかげた質問ですが、それはjpgでのみ機能しますか? pngはどうですか?もう1つは、どうすればいいのですか?つまり、返された 'WriteableBitmap'をXAMLの' ItemTemplate'( 'UriSource'ではなく)の' BitmapImage'に直接リンクするにはどうすればいいですか? – lashman
@lashman ' ' - 'WriteableBitmap'は、そのプロパティを設定できるものの1つです。 –
asveikau
ええ、私は知っている...問題は - その 'CreateOptions =" DelayCreation、BackgroundCreation "のパラメータに' BitmapImage'を使う必要があり、 'BitmapImage'に' Source'がありません...それは(少なくともXAMLから直接の)「UriSource」しか持っていません – lashman