2017-09-15 2 views
0

Ich habe ein fixeddocument, in dem ich ein Bild habe. Die Quelleigenschaft des Bildes ist an ein Byte-Array (gelesen von der Datenbank) im Datenkontext des Dokuments gebunden. Wenn ich die Maus über das Bild bewege, erhalte ich eine Dateiendung.wpf documentviewer wirft Ausnahme auf Maus über Bild

Es sieht aus wie die Documentviewer versucht, zusätzliche Informationen über das gerenderte Bild aus einer Datei mit dem Namen „Bild“ im Arbeitsverzeichnis, das natürlich nicht existiert zu laden.

Kann jemand dieses Verhalten deaktivieren?

+0

Wir über Ihre Ausgabe weitere Informationen benötigen, am wichtigsten, wie Sie das Bild dem Steuerelement zuweisen. Ich benutze im Allgemeinen einen Konverter und transformiere Bytearray zu einer Bitmap und gebe das für eine Bildkontrolle zurück. – XAMlMAX

+0

derzeit die Quelle-Eigenschaft des Bildes wird direkt an den Byte-Array gebunden: \t \t \t öffentliches byte [] PassPhoto { get {return this.person.PassPhoto; }} \t \t \t \t ich Ihre Lösung versuchen ... – Hurby

+0

Versuchen Sie, ein Bitmap einen Konverter und zu transformieren, dass die Byte-Array verwendet wird. [mehr Infos hier] (https://StackOverflow.com/a/21555447/2029607) – XAMlMAX

Antwort

0

Sie ein Bitmap von einem Byte-Array mit dem folgenden Konverter erstellen:

public class BytesToBitmapConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     var bytes = (byte[])value; // make sure it is an array beforehand 

     using (var ms = new System.IO.MemoryStream(bytes)) 
     { 
      var image = new BitmapImage(); 
      image.BeginInit(); 
      image.CacheOption = BitmapCacheOption.OnLoad; 
      image.StreamSource = ms; 
      image.EndInit(); 
      return image; 
     } 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     return value; 
    } 
} 

Dann in Ihrem XAML Sie dies wie so verwenden würde:

<Image Source="{Binding propertyNameHere, Converter={StaticResource converterName}}"/> 
Verwandte Themen