интерфейс документа с вкладками в WPF с использованием только встроенных средств? - PullRequest
5 голосов
/ 22 июня 2009

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

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

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

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

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

Ответы [ 2 ]

7 голосов
/ 22 июня 2009

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

5 голосов
/ 22 июня 2009

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

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

<TabControl x:Name="documentArea"/>

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

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

    documentArea.Items.Add(form);
}

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...