检测Microsoft功能区中的活动选项卡是否已更改

时间:2012-04-12 09:04:30

标签: c# wpf xaml ribbon

我希望能够告诉您哪个标签是Microsoft功能区中的活动标签,以相应地更改内容显示。

我该怎么做?

以下是我提出的建议:

    public MainWindow()
    {
        InitializeComponent();

        // Insert code required on object creation below this point.
        new Thread(() =>
        {
            int lastIndex = int.MinValue;

            while (true)
            {
                Thread.Sleep(100);

                int newIndex = -1;
                this.Dispatcher.Invoke(DispatcherPriority.Normal,
                    new Action(() =>
                    {
                        newIndex = Ribbon.SelectedIndex;
                    }));

                if (newIndex != lastIndex)
                {
                    lastIndex = newIndex;
                    var index = lastIndex;
                    this.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (ThreadStart) (() =>OnCurrentTabChanged(index)));
                }
        }){ IsBackground=true}.Start();
    }

    void OnCurrentTabChanged(int tabIndex)
    {

    }

但必须有更好的方法来做到这一点。有吗?

1 个答案:

答案 0 :(得分:2)

功能区继承自ItemsControl,因此如果绑定到SelectedItem属性,您将收到有关当前Tab更改的通知。