Obraz nie jest odświeżany w niestandardowym polu obrazu

Moje niestandardowe pudełko zawiera przeglądarkę i obraz. Właściwość zależna Obraz ciągu znaków jest używany do ustawienia obrazu.

<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>

Obraz jest pobierany za pomocą frame grabbera i zapisywany w określonej lokalizacji o nazwie „camera_image.tif”. Właściwość Image ma tę nazwę. Gdy rozpoczynam nabywanie nowego obrazu, ustawiam właściwość Obraz poprzez wiązanie na null, a pole obrazu aktualizuje się, aby nie wyświetlać obrazu. Po zakończeniu akwizycji ponownie ustawiam ją na „camera_image.tif”. Problem polega na tym, że nowy obraz nigdy się nie pojawia. Zamiast tego jest to zawsze pierwszy uzyskany obraz wyświetlany w polu obrazu. Gdy sprawdzam plik obrazu, zawiera on nową zawartość.

Jak mogę uzyskać ramkę obrazu, aby odświeżyć obraz?

Pozdrowienia,

tabina

questionAnswers(1)

yourAnswerToTheQuestion