Когда я разрабатывал свое приложение WPF для ПК, я использовал следующий код для отображения своего изображения в формате gif, поскольку понял, что простого способа сделать это не существует: -
XAML:
<StackPanel Height="25" Name="stkProgressBar">
<wfi:WindowsFormsHost Background="Transparent" HorizontalAlignment="Center">
<winForms:PictureBox x:Name="pictureBoxLoading" Visible="False">
</winForms:PictureBox>
</wfi:WindowsFormsHost>
</StackPanel>
XAML.cs:
private void Page_Loaded(object sender, RoutedEventArgs e)
{
this.pictureBoxLoading.Image = Properties.Resources.progressbar;
}
Теперь, когда я использую тот же подход для отображения изображения в приложении WPF Browser (XBAP), он не загружает страницу из-за этого кода xaml? Любые идеи, почему это так, и если есть какой-либо другой способ отображения GIF-файлов на странице XBAP?
Спасибо,
Аби.
==================
Обновлено 27.07.2010 11: AM
Теперь я попробовал следующий код: -
XAML:
<Image Name="Image1"></Image>
XAML.cs:
Stream imageStreamSource = new FileStream(@"C:\Inetpub\ExchangeRate\ExchangeRate\Image\progressbar.gif", FileMode.Open, FileAccess.Read, FileShare.Read);
GifBitmapDecoder decoder = new GifBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
Int32Animation anim = new Int32Animation(0, decoder.Frames.Count - 1, new Duration(new TimeSpan(0, 0, 0, decoder.Frames.Count / 10, (int)((decoder.Frames.Count / 10.0 - decoder.Frames.Count / 10) * 1000))));
anim.RepeatBehavior = RepeatBehavior.Forever;
BitmapSource bitmapSource = decoder.Frames[0];
Image1.Source = bitmapSource;
Image1.Stretch = Stretch.None;
Хорошо показывает изображение, но не анимировано. Буду признателен за любую помощь в этом отношении.
Аби.