我想实现一个自定义BitmapSource类,它提供偶尔会发生变化的图像。 BitmapSource如何向消费者发出图像已更改且必须重新加载的信号?
例如,调用AddDirtyRect之后的WritableBitmap更新的使用者。我想在我的BitmapSource类中创建一个类似的机制。
一个同等的问题是:ImageSource的消费者如何知道图像已经改变并且应该重新加载?
答案 0 :(得分:0)
这是不可能的。 WPF通过发送DUCE.MILCMD_BITMAP_INVALIDATE命令在内部处理此问题。应用程序无法发送或接收此命令。
有关于在https://blogs.msdn.microsoft.com/dwayneneed/2008/06/20/implementing-a-custom-bitmapsource/
编写自定义BitmapSource的一些信息和示例代码答案 1 :(得分:0)
我已经习惯了这样做。
创建继承自ImageProvider
或DependencyObject
的{{1}}类,其中包含您填写的只读INotifyPropertyChanged
属性。
将此提供者的实例放在ImageSource
/ Window
的资源中,如下所示:
Control
<Window>
<Window.Resources>
<controls:MyImageProvider x:Key="Provider" />
</Window.REsources>
</Window>
媒体资源: ImageSource
<Image Source="{Binding ImageSource, Source={StaticResource Provider}" />
属性,然后让WPF处理更新。