0

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 の 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 に答える