2010-06-01 17 views
5

ich eine Bildsteuerung verwende Dokumente anzuzeigen:WPF Bild/Rendering-Ereignis

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

Da dauert es etwa eine halbe Sekunde auf dem Bildschirm, um das Bild anzuzeigen, ich zeigen zunächst eine Vorschau mit:

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

Dann habe ich einen Timer eingestellt, um den Modus zu HighQuality zu ändern.

Gibt es ein Ereignis, das WPF ausgelöst wird, wenn es fertig ist Rendern, das ich anstelle des Timers verwenden konnte?

Antwort

3

Sie können versuchen, das Bild sourceupdated Ereignis zu verwenden, aber ich habe nicht immer Glück dabei.

Eine bessere Lösung, je nach Quelle, ist das Hinzufügen eines Handlers für den Ladevorgang.

können Sie so etwas wie dies versuchen:

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

dann können Sie den Code schreiben für ImageDownloadCompleted die Auflösung zu ändern.