WPF Image / Rendering Event - PullRequest
       5

WPF Image / Rendering Event

5 голосов
/ 01 июня 2010

Я использую элемент управления изображением для отображения документов:

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 19 декабря 2011

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

лучшее решение, в зависимости от вашего источника, - добавить обработчик, когда он загружается.

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

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

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

1 голос
/ 20 февраля 2011

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

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

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

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