【问题标题】:MonoMac: NsView and System.Drawing.GraphicsMonoMac:NsView 和 System.Drawing.Graphics
【发布时间】:2013-06-09 19:54:50
【问题描述】:

我正在尝试让 .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 (for example here)。但如果我这样做,我将无法编译,因为使用 Mono-Assemblies 我没有带有“0 参数”构造函数的图形(我引用的与示例中的相同)。

如果有人知道可能出了什么问题 - 或者可以提供另一个示例,我将不胜感激。

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

非常感谢!

【问题讨论】:

  • 你知道你链接的文件不是一个独立的例子,对吧?它是一个更大项目的一部分,该项目在 CoreGraphics 之上提供 System.Drawing 功能。这就是具有 0 参数构造函数的 Graphics 对象可能来自...

标签: .net mono system.drawing monomac


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    相关资源
    最近更新 更多