Mono 用の .NET Windows アプリケーションを Linux (Ubuntu) で実行するように変換しています。機能の 1 つは、ネイティブ ライブラリ (user32.dll) に依存します。アプリケーションの変換について説明している Mono ガイド ( Linux Platform Differences ) では、このコードを変更する方法が 1 つ提案されています。
GDK を使用して、プロパティ Gdk.Global.ActiveWindow を介してアクセスした Gdk.Window のタイトルにアクセスしようとしています。しかし、コンパイル時に次のエラーが見つかりました。
Error CS0154: The property or indexer `Gdk.Window.Title` cannot be used in this context because it lacks the `get` accessor (CS0154) (GetActiveWindow)
Title
ActiveW のプロパティを読み取るコードを削除すると、すべて正常に動作します。このプロパティを読み取る別の方法はありますか?
ここで私の仕事の単位:
using System;
using Gtk;
using Gdk;
using System.Threading;
namespace GetActiveWindow
{
class GdkApp : Gtk.Window
{
public static void Main ()
{
Application.Init ();
new GdkApp ();
Application.Run ();
}
public GdkApp () : base("Simple App")
{
SetDefaultSize (150, 150);
ShowAll();
while (true) {
var activeW = Gdk.Global.ActiveWindow;
Console.WriteLine("Active Window: {0}",activeW.Title); // Where my compile error happens.
Console.WriteLine("Simple App Window: {0}",this.Title); // This code works perfectily.
Thread.Sleep(1000);
}
}
}
}