我正在尝试使用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)。
非常感谢!
答案 0 :(得分:1)
只需创建空构造函数和IntPtr构造函数,它应该在之后工作。 Cocoa需要那些实例化对象。
public MyControl(){}
public MyControl (IntPtr handle) : base (handle) {}