具有动态内容的自定义BitmapSource

时间:2016-05-13 22:26:50

标签: wpf

我想实现一个自定义BitmapSource类,它提供偶尔会发生变化的图像。 BitmapSource如何向消费者发出图像已更改且必须重新加载的信号?

例如,调用AddDirtyRect之后的WritableBitmap更新的使用者。我想在我的BitmapSource类中创建一个类似的机制。

一个同等的问题是:ImageSource的消费者如何知道图像已经改变并且应该重新加载?

2 个答案:

答案 0 :(得分:0)

这是不可能的。 WPF通过发送DUCE.MILCMD_BITMAP_INVALIDATE命令在内部处理此问题。应用程序无法发送或接收此命令。

有关于在https://blogs.msdn.microsoft.com/dwayneneed/2008/06/20/implementing-a-custom-bitmapsource/

编写自定义BitmapSource的一些信息和示例代码

答案 1 :(得分:0)

我已经习惯了这样做。

  1. 创建继承自ImageProviderDependencyObject的{​​{1}}类,其中包含您填写的只读INotifyPropertyChanged属性。

  2. 将此提供者的实例放在ImageSource / Window的资源中,如下所示:

  3. Control

    1. 将您的图片绑定到提供商的 <Window> <Window.Resources> <controls:MyImageProvider x:Key="Provider" /> </Window.REsources> </Window> 媒体资源:
    2. ImageSource

      1. 每次要刷新图像时,请在提供程序上设置 <Image Source="{Binding ImageSource, Source={StaticResource Provider}" /> 属性,然后让WPF处理更新。