MonoMac:NsView和System.Drawing.Graphics

时间:2013-06-13 12:18:55

标签: .net mono system.drawing monomac

我正在尝试使用MonoMac在Mac下使用.NET 4.0应用程序。

不幸的是我在某些时候需要System.Drawing.Graphics。 我发现很多关于将System.Drawing与NsView一起使用的方法,如果我谷歌它,但是当涉及到System.Drawing.Graphics时没有任何效果。

如果我按照WinForms-Knowledge的方式进行操作,我最终会得到这段代码:

using (var g = Graphics.FromHwnd (this.TheNsViewInstance.Handle))
{
    g.DrawRectangle (new Pen(Color.Green), new Rectangle (new Point(50, 50), new Size (100, 50)));
}

但是我的应用程序因 System.Reflection.TargetInvocationException 而中断。

在mono-github上,我找到了一些例子,他们创建了一个带有0个参数的图形实例(for example here)。但是如果我这样做,我就无法编译,因为使用Mono-Assemblies我没有带有“0 Parameters”构造函数的Graphics(我引用的方法与示例中的相同)。

如果有人知道什么可能是错的 - 或者可以提供另一个例子,我真的很感激。

我正在运行最新的单声道稳定版(2.10.11)。

非常感谢!

1 个答案:

答案 0 :(得分:1)

只需创建空构造函数和IntPtr构造函数,它应该在之后工作。 Cocoa需要那些实例化对象。

public MyControl(){}
public MyControl (IntPtr handle) : base (handle) {}