Das Bild wird in der benutzerdefinierten Bildbox nicht aktualisiert

Meine benutzerdefinierte Bildbox enthält einen Scrollviewer und ein Bild. Eine Dependecy-Eigenschaft Image vom Typ string wird verwendet, um das Image festzulegen.

<code>public static DependencyProperty ImageProperty = DependencyProperty.Register(
"Image", typeof(string), typeof(CustomPictureBox), new FrameworkPropertyMetadata("", new  PropertyChangedCallback(OnImageChanged)));


private static void OnImageChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
  CustomPictureBox cpb = (CustomPictureBox)d;
  if (e.Property == ImageProperty)
  {
    string newvalue = e.NewValue as string;
    if (!(string.IsNullOrEmpty(newvalue)))
    {
      var bmp = new BitmapImage();
      bmp.BeginInit();
      bmp.UriSource = new Uri(newvalue);
      bmp.CacheOption = BitmapCacheOption.OnLoad;
      bmp.EndInit();

      cpb.imgPicture.Source = bmp;
    }
    else
      cpb.imgPicture.Source = null;
  }
}
</code>

Ein Bild wird per Framegrabber erfasst und an einem bestimmten Ort mit dem Namen "camera_image.tif" gespeichert. Die Image-Eigenschaft wird auf diesen Dateinamen festgelegt. Wenn ich eine neue Bilderfassung starte, setze ich die Image-Eigenschaft über die Bindung auf null und das Bildfeld wird so aktualisiert, dass kein Bild angezeigt wird. Wenn die Bilderfassung abgeschlossen ist, setze ich sie erneut auf "camera_image.tif". Das Problem ist, dass das neue Bild nie angezeigt wird. Stattdessen wird immer das erste erfasste Bild im Bildfeld angezeigt. Wenn ich die Bilddatei überprüfe, enthält sie den neuen Inhalt.

Wie kann ich das Bildfeld zum Aktualisieren des Bildes verwenden?

Grüße,

tabina

Antworten auf die Frage(1)

Ihre Antwort auf die Frage