WriteableBitmap:编译器抱怨无法找到类型,但intellisense可以找到它

时间:2010-11-11 07:50:51

标签: f# image-manipulation

我正在通过将C#中的程序转换为F#

来学习F#

问题在于WritableBitmap,编译器抱怨说:
 The type tableBitmap is not defined
这是代码:

module MandelbrotBitmap
open System.Windows.Media
open System.Windows.Media.Imaging

type Mandelbrot(width:int) as this =
    let mutable _width = width
    let mutable _height = 10
    let mutable bitmap = new WritableBitmap( _width, _heights, 96.0, 96.0,
       PixelFormats.Bgr32, None)

    member this.Width 
        with get() = _width
        and set(newVal) = _width <- newVal

实例中的None是我尝试替换原始表达式中的null
我的参考资料中有PresentationCoreWindowsBase

      bitmap = new WriteableBitmap(
                (int)sizeInfo.NewSize.Width, 
                (int)sizeInfo.NewSize.Height, 
                96, 96, PixelFormats.Bgr32, null);

msdn article

中描述了WriteableBitmap

我的问题是; 编译器抱怨什么?

3 个答案:

答案 0 :(得分:7)

你有两个错别字:WritableBitmap应该是 WriteableBitmap ,而_heights应该是_ height 。此外,nullNone不可互换,当您经常使用.NET框架类时,必须使用null,这是F#的互操作功能。最后一个问题,如果你想在WriteableBitmap构造函数中的行之间拆分你的参数,你需要确保下一行的缩进比new更远,因为空格在F#中很重要。这是最终的,固定的WriteableBitmap构造函数调用:

new WriteableBitmap( _width, _height, 96.0, 96.0, 
    PixelFormats.Bgr32, null)

答案 1 :(得分:2)

这只是一个错字:

let mutable bitmap = new WriteableBitmap( _width, _heights, 96.0, 96.0,
    PixelFormats.Bgr32, None)

答案 2 :(得分:2)

您的代码中存在少量拼写错误: WriteableBitmap 和_ 高度