Silverlight загружает изображение с URL-адреса, но не отображается

Обратите внимание на следующий XAML:

<Grid>
<HyperlinkButton x:Name="Link" Background="Green">
    <Grid Background="Red">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="12" />
        </Grid.RowDefinitions>
        <Image x:Name="AvatarImage" Style="{StaticResource AvatarStyle}" Grid.Column="0" Grid.Row="0" />
        <StackPanel Grid.Column="1" HorizontalAlignment="Stretch">
            <TextBlock Text="New Topic" Style="{StaticResource ItemTypeStyle}" />
            <TextBlock x:Name="Title" Style="{StaticResource HeadlineStyle}" TextWrapping="Wrap" />
            <TextBlock x:Name="SubText" Style="{StaticResource TextStyle}" TextWrapping="Wrap" />
        </StackPanel>
        <TextBlock x:Name="TimeStampText" Grid.ColumnSpan="2" Grid.Row="1" Style="{StaticResource TimeStampStyle}" />
    </Grid>
</HyperlinkButton>

In the user control's Loaded event, I call the following code:

var imageUrl = new Uri("http://coasterbuzz.com/Forums/UserAvatar.ashx?id=2");
AvatarImage.Source = new BitmapImage(imageUrl);

Глядя на Firebug, изображение передается по сети, но по какой-то причине не отображается. Есть догадки, почему? Возможно, вам захочется увидеть стили, но учтите, что если я удалю стили, ничего не изменится.


person Jeff Putz    schedule 28.07.2009    source источник


Ответы (1)


Ах, простой ответ. Silverlight 2 не поддерживает GIF.

Здесь есть несколько решений для преобразования сервера изображений: http://silverlight.net/forums/t/3883.aspx

Самая официальная причина, которую я могу найти:

Почему отсутствует поддержка отображения изображения .gif? Когда это будет добавлено?

Мы не хотим брать на себя ответственность за другой кодек. Это может быть совсем немного времени для загрузки, но наши полномочия небольшие и быстрые, и каждый бит имеет значение. Мы также не решаемся поддерживать .gif, потому что он подразумевает поддержку анимированного .gif, который, как мы решили, нужно как-то интегрировать в нашу схему анимации - и это потребует много работы.

С точки зрения Flash, Flash также не поддерживает .gif. Однако в настоящее время это что-то оценивается, но дата не объявлена.

http://blogs.msdn.com/ashish/archive/2008/04/03/silverlight-roadmap-questions.aspx

person russau    schedule 28.07.2009
comment
Это Silverlight 3. Странность в том, что он отображался в какой-то момент. - person Jeff Putz; 28.07.2009
comment
Неважно, это была странная причуда графики, которая не была тем типом, о котором я думал. - person Jeff Putz; 28.07.2009