私のカスタム画像ボックスには、スクロールビューアと画像が含まれています。文字列型の依存プロパティ Image を使用してイメージを設定します。
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;
}
}
画像はフレーム グラバーを介して取得され、「camera_image.tif」という名前で特定の場所に保存されます。Image プロパティは、このファイル名に設定されます。新しい画像の取得を開始するときに、バインドを介して Image プロパティを null に設定すると、画像ボックスが更新されて画像が表示されなくなります。画像の取得が完了したら、「camera_image.tif」に再度設定します。問題は、新しい画像が表示されないことです。代わりに、画像ボックス内に表示されるのは常に最初に取得された画像です。画像ファイルを確認すると、新しいコンテンツが含まれています。
画像ボックスで画像を更新するにはどうすればよいですか?
よろしく、
タビナ