1

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)

TitleActiveW のプロパティを読み取るコードを削除すると、すべて正常に動作します。このプロパティを読み取る別の方法はありますか?

ここで私の仕事の単位:

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);
            }
        }
    }
}
4

1 に答える 1