2010-06-01 2 views
5

Я с помощью элемента управления Image для отображения документов:WPF Image/Rendering событий

<Image x:Name="cImage" SnapsToDevicePixels="True" ... /> 

Потому что она занимает около половины секунды, чтобы отобразить изображение на экране, я первый предварительный просмотр с:

RenderOptions.SetBitmapScalingMode(cImage, BitmapScalingMode.NearestNeighbor); 
cImage.Source=...; 

Затем я установил таймер, чтобы изменить режим на HighQuality.

Есть ли событие, которое WPF срабатывает, когда он закончил рендеринг, который я мог бы использовать вместо таймера?

ответ

1

Не будет ли это событие Loaded для изображения?

Согласно http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.loaded.aspx, Loaded запускается, когда содержимое отображается и готово к взаимодействию.

Обратите внимание, что если вы измените содержимое элемента управления изображением после его загрузки, событие Loaded не будет запущено снова.

3

Вы можете попытаться использовать событие sourceupdated image, но мне не всегда удавалось использовать это.

Лучшее решение, в зависимости от вашего источника, заключается в добавлении обработчика при его загрузке.

вы можете попробовать что-то вроде этого:

BitmapImage src = new BitmapImage(); 
src.BeginInit(); 
src.UriSource = tURI; 
src.EndInit(); 
imgImage.SetCurrentValue(Image.SourceProperty, src); 
src.DownloadCompleted += ImageDownloadCompleted; 

, то вы можете написать код для ImageDownloadCompleted, чтобы изменить разрешение.

Смежные вопросы