0

我正在尝试让 .NET 4.0 应用程序在带有 MonoMac 的 Mac 下工作。

不幸的是,我有时需要 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 个参数的 Graphics-Instance(例如这里)。但是如果我这样做,我将无法编译,因为使用 Mono-Assemblies,我没有带有“0 参数”构造函数的图形(我引用的与示例中的相同)。

如果有人知道可能出了什么问题 - 或者可以提供另一个例子,我会非常感激。

我正在运行 mono (2.10.11) 的最新稳定版本。

非常感谢!

4

1 回答 1

1

只需创建空构造函数和 IntPtr 构造函数,然后它应该可以工作。Cocoa 需要这些来实例化对象。

public MyControl(){}
public MyControl (IntPtr handle) : base (handle) {}
于 2013-06-15T22:01:32.597 回答