如何确定哪个UI元素在GTK#中具有焦点?

时间:2015-07-22 23:46:37

标签: c# mono gtk#

在C#中,很容易找到哪个元素具有焦点;你这样做:

using System.Windows;
using System.Windows.Input;

namespace Whatever
{
    public partial class MainWindow : Window
    {
        public IInputElement GetFocusedElement()
        {
            return FocusManager.GetFocusedElement(this);
        }
    }
}

我想在Mono / GTK#中做粗略的等效操作。我该怎么做?

1 个答案:

答案 0 :(得分:2)

在GTK窗口(Mainwindow / this)上有一个 Focus 道具,它返回 Widget 。你可以得到并设置它,它应该波及所有关注的'容器子项直到它到达最后一个聚焦节点。

所以更新代码示例:

public partial class MainWindow : Window
{
    public Widget GetFocusedElement()
    {
        Console.WriteLine (((Widget)this.Focus).Name);
        return this.Focus;
    }
}