Где найти статус WPF Image Control? - PullRequest
2 голосов
/ 01 декабря 2008

Одной из приятных особенностей элемента управления Image является то, что мы можем указать Uri в качестве ImageSource, и изображение будет автоматически загружено для нас. Это замечательно! Однако, похоже, что элемент управления не имеет свойства, указывающего, идет загрузка изображения или нет.

Есть ли свойство, сообщающее нам статус (загружается, загружен и т. Д.) Элемента управления изображением?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 01 декабря 2008

Пока ваш ImageSource является BitmapImage, вы можете использовать событие BitmapImage.DownloadCompleted. Единственная проблема, которую я обнаружил, заключается в том, что она работает только с C #, поэтому вы потеряете некоторую гибкость. Я предполагаю, что вы могли получить доступ к этому событию из XAML, но я не уверен, как. Следующий пример начинает загрузку изображения одним нажатием кнопки и обновляет метку после завершения загрузки изображения.

XAML:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="50" />
        <RowDefinition Height="50" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Image x:Name="image" Grid.Row="2"/>
    <Label x:Name="label" Content="aaa" Grid.Row="1"  />
    <Button Click="Button_Click" Content="Click to load image" Grid.Row="0" />
</Grid>

Код:

private void Button_Click(object sender, RoutedEventArgs e)
{
    BitmapImage bi = new BitmapImage();
    bi.BeginInit();
    bi.DecodePixelHeight = 100;
    bi.CacheOption = BitmapCacheOption.OnLoad;
    bi.UriSource = new Uri("bigImageUri");
    bi.EndInit();

    bi.DownloadCompleted += new EventHandler(bi_DownloadCompleted);
    image.Source = bi; 


}

void bi_DownloadCompleted(object sender, EventArgs e)
{
    label.Content = "dl completed";
}

Надеюсь, это поможет!

0 голосов
/ 01 декабря 2008

Установить OnPropertyChanged на DP DP?

0 голосов
/ 01 декабря 2008

Хм - это хороший вопрос. Я просмотрел документацию класса ImageSource по MSDN, и похоже, что там нет ничего, чтобы получить эту информацию.

При этом, не могли бы вы начать загрузку вручную и установить свойство Source элемента управления Image после завершения загрузки? Вы бы точно знали, была ли загрузка завершена ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...