Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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
C# 具有WriteableBitmap的用户定义位图源_C#_Wpf_Writeablebitmap_Bitmapsource - Fatal编程技术网

C# 具有WriteableBitmap的用户定义位图源

C# 具有WriteableBitmap的用户定义位图源,c#,wpf,writeablebitmap,bitmapsource,C#,Wpf,Writeablebitmap,Bitmapsource,我有一个DICOM图像数据,它有16位的灰度值。为了可视化数据,我需要应用一种窗口化方法,将16位值切掉。因此,我有两个属性,如WindowCenter和WindowWidth 因为我想使用WPF机制,所以我决定创建一个从BitmapSource派生的DicoImage类。由于BitmapSource无法直接访问内部pixeldata,因此我创建了一个私有的WriteableBitmap(InternalImage)成员,每当WindowCenter和WindowWidth发生更改时,我都可以在

我有一个DICOM图像数据,它有16位的灰度值。为了可视化数据,我需要应用一种窗口化方法,将16位值切掉。因此,我有两个属性,如WindowCenter和WindowWidth

因为我想使用WPF机制,所以我决定创建一个从BitmapSource派生的DicoImage类。由于BitmapSource无法直接访问内部pixeldata,因此我创建了一个私有的WriteableBitmap(InternalImage)成员,每当WindowCenter和WindowWidth发生更改时,我都可以在其中操作数据

要查看结果,我将其附加到Image.Source=DicomImage,并显示图像。但当我更改WindowCenter/WindowWidth时,图像不会更新。当我直接附加WriteableBitmap(Image.Source=InternalImage)时,一切都正常工作

我做错了什么

谢谢
Marti

为什么不从WriteableBitmap派生DICOM图像?我可以,但我不希望用户修改WriteableBitmap。最后一步是你的建议。但我也想了解图像是如何知道什么时候发生了变化的。因为它适用于WriteableBitmap,所以一定有一些我找不到的未知机制。