0

それに応じてコンテンツの表示を変更するために、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)
    {

    }

しかし、これを行うためのより良い方法があるはずです。ある?

4

1 に答える 1

2

リボンはItemsControlから継承しているため、SelectedItemプロパティにバインドすると、現在のタブの変更に関する通知が届きます。

于 2012-04-12T10:33:48.663 に答える