Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 具有动态内容的自定义位图源_Wpf - Fatal编程技术网

Wpf 具有动态内容的自定义位图源

Wpf 具有动态内容的自定义位图源,wpf,Wpf,我想实现一个定制的BitmapSource类,它提供一个偶尔会更改的图像。BitmapSource如何向其使用者发出图像已更改且必须重新加载的信号 例如,调用AddDirtyRect后可写位图更新的使用者。我想在我的BitmapSource类中创建一个类似的机制 一个等价的问题是:ImageSource的使用者如何知道图像已更改并应重新加载?这是不可能的。WPF通过发送DUCE.MILCMD\u BITMAP\u INVALIDATE命令在内部处理此问题。应用程序无法发送或接收此命令 有一些关于

我想实现一个定制的BitmapSource类,它提供一个偶尔会更改的图像。BitmapSource如何向其使用者发出图像已更改且必须重新加载的信号

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


一个等价的问题是:ImageSource的使用者如何知道图像已更改并应重新加载?

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


有一些关于在

处编写自定义位图源的信息和示例代码,这是不可能的。WPF通过发送DUCE.MILCMD\u BITMAP\u INVALIDATE命令在内部处理此问题。应用程序无法发送或接收此命令


这里有一些关于编写自定义位图源代码的信息和示例代码,我使用了一种解决方法

  • 使用您填写的只读
    ImageSource
    属性创建继承自
    DependencyObject
    INotifyPropertyChanged
    ImageProvider

  • 将此提供程序的实例放入
    窗口的资源中
    /
    控件
    ,如下所示:

  • 
    

  • 将图像绑定到提供商上的
    ImageSource
    属性:
  • 
    

  • 每次要刷新图像时,请在提供程序上设置
    ImageSource
    属性,并让WPF处理更新

  • 我曾经有一个变通办法来解决这个问题

  • 使用您填写的只读
    ImageSource
    属性创建继承自
    DependencyObject
    INotifyPropertyChanged
    ImageProvider

  • 将此提供程序的实例放入
    窗口的资源中
    /
    控件
    ,如下所示:

  • 
    

  • 将图像绑定到提供商上的
    ImageSource
    属性:
  • 
    

  • 每次要刷新图像时,请在提供程序上设置
    ImageSource
    属性,并让WPF处理更新

  • 您可以使用JetBrains dotPeek查看PresentationCore程序集中的WriteableBitmap源。是否检查了类?您可以使用JetBrains dotPeek查看PresentationCore程序集中的WriteableBitmap源。是否检查了类?