Интерфейс документа с вкладками в WPF с использованием только встроенных средств?

Я видел две темы о TDI & C#. Они оба не ответили на мои вопросы...

Поскольку в настоящее время TDI в значительной степени похожи на стандарт, я с трудом могу себе представить, что мне нужно покупать специальный элемент управления (например, AvalonDock или SandDock). Это должно быть возможно с помощью встроенного элемента управления табуляции (?) Как-то! Мне не нужны специальные функции, такие как док-панель и перетаскиваемые табитемы. Просто откройте каждую форму в новой вкладке. Это оно.

Например, поместить элементы управления содержимым всех форм в пользовательские элементы управления и по запросу (кнопка, щелчок меню...) добавить новую вкладку и поместить на нее соответствующий элемент управления... как-то так.

Как бы вы это сделали? Это не может быть, что сложно (даже для меня), или я что-то упустил?!

большое спасибо!

2 ответа

Решение

Это не так сложно. Это кажется трудным, потому что есть много разных способов сделать это.

Попробуй это:

<TabControl x:Name="documentArea"/>

Обработчик для кнопки AddForm:

private void AddFormClick(object sender, RoutedEventArgs e)
{
    object form = GetNewForm();

    documentArea.Items.Add(form);
}

Вот и все. Вы должны реализовать GetNewForm() одним из двух способов. Пусть он вернет пользовательский элемент управления, отображающий форму.

ИЛИ еще лучше, пусть он вернет документ, который вы хотите отобразить. Использовать DataTemplate выбрать элементы управления для отображения этого документа. Этот метод будет сложнее настроить.

Возможно, статья Джоша Смита о MVVM может дать вам представление о том, как спроектировать такой пользовательский интерфейс. В построенном примере есть своего рода интерфейс документа с вкладками, так что вы можете использовать его как начальный блок.

Другие вопросы по тегам