WPF C# программно добавление и перемещение вкладок

в настоящее время я работаю над тем, что, вероятно, сделано во многих примерах. Но после некоторых поисков я ничего не могу найти.

Я работаю с WPF tab control, и я пытаюсь воссоздать некоторые основные функции (которые вы видите во всех интернет-браузерах в настоящее время), чтобы добавить новую вкладку, нажав вкладку"+", которая является последней указанной вкладкой.

У меня уже есть вкладка"+", которая добавляет новую вкладку. Моя проблема в том, что я хочу Переместить вкладку " + " после новой вкладки (таким образом, его конечная вкладка снова) и переключиться на новую вкладку, которая только что была создана.

Я подумал что-то вроде:

    void tiNewTab_Add(object sender, EventArgs e)
    {
        int idx = tabControl1.Items.Count;
        tabControl1.SelectedIndex = idx - 1;
        TabItem ti = new TabItemKPI();
        tabControl1.Items.Add(ti);
        tabControl1.Items.MoveCurrentToLast();
    }

...будет работать, но не повезло :(

какие идеи?

спасибо заранее.

2 ответов


попробуйте что-то вроде этого:

tabControl1.Items.Insert(tabControl1.Items.Count-1,ti); 

это будет сделано, потому что у вас всегда есть хотя бы один TabItem (+one)

выберите второй последний

tabControl1.SelectedIndex=tabControl1.Items.Count-2;

Не проверял, но следующее должно работать:

int idx = tabControl1.Items.Count;
tabControl1.SelectedIndex = idx - 1;
TabItem ti = new TabItem();
tabControl1.Items.Insert(tabControl1.Items.IndexOf(tabControl1.Items.Last()), ti);