Imageコントロールを使用して大きな画像 (~8000x8000 ピクセル) を表示するアプリケーションがあります。次のように、イメージ コントロールを ImageSource にバインドしています。
<Image x:Name="_ImageSource" Source="{Binding ViewModel.Image, Mode=OneWay}" RenderOptions.BitmapScalingMode="Linear"/>
私は Leadtools 画像ライブラリを使用して、WritableBitmap である ImageSource を作成しています。
this.Image = RasterImageConverter.ConvertToSource(displayImage, ConvertToSourceOptions.None) as BitmapSource;
すべてが機能しますが、ViewModel で Image プロパティが設定されてから、Image コントロールが実際に表示を更新するまでにかなりの遅延があります (大きな画像の場合は 10 秒程度)。私はいくつかのプロファイリング/ロギングを行いましたが、それが の呼び出しではないことを知っていますRasterImageConverter.ConvertToSource()
。代わりに、Image コントロール自体が行っていることのようです。
これまでのところ、この遅延の原因について多くを知ることができませんでした. 少なくとも、コントロールが実際に更新されたときに通知を受け取れるようにしたいので、ある種のビジー通知を表示できますが、適切なタイミングで発生するイベントはないようです。
任意のアイデアや支援をいただければ幸いです。