Как реализовать mdi в приложении WPF - PullRequest
13 голосов
/ 29 октября 2010

Мне действительно нравятся приложения MDI.

Позволяет быстро перемещаться между окнами и сравнивать содержимое разных окон. Кроме того, иногда содержимое одного окна полезно для другого, поэтому я могу копировать и вставлять. Я думаю, что это отличный пользовательский опыт для рабочего режима.

Правильная или неправильная практика, мне это нравится.

Я видел вопрос переполнения стека MDI-приложений в WPF , и там они привели в качестве среды Visual Studio 2010 . Я не понимал, можно ли и как реализовать эту среду: например, иметь вкладки, которые можно отрывать на независимый (менее важный для меня) экран и переставлять рядом с остальными вкладками.

Полагаю, я ищу "систему разметки стыковки в WPF", гуглю это предложение сторонними компонентами.

Думаю, я начну с "нормального" приложения. Такое ощущение, что здесь нет простой готовой реализации.

Ответы [ 3 ]

10 голосов
/ 28 ноября 2010

Есть два популярных проекта на CodePlex, которые могут вам помочь:

  • AvalonDock - док-библиотека в стиле Visual Studio и
  • WpfMdi , который является классическим оконным менеджером MDI.

AvalonDock поддерживает отдельные наборы вкладок рядом, а также отрывные окна, такие как Visual Studio, поэтому он должен дать вам все необходимое, хотя и не совсем классический MDI. Он используется в SharpDevelop, так что вы можете скачать его, чтобы поиграть и получить представление о том, как можно использовать библиотеку стыковки.

Edit:

И я нашел третий, который выглядит очень привлекательно: Chronos WPF .

7 голосов
/ 28 ноября 2010

Почему-то Microsoft решила, что MDI не так. Существует много информации об этом при поиске в Google.

Я считаю, что неправильно убивать то, что нравилось многим людям, и на форумах, которые я посещал, некоторые люди указывают на новый пример Microsoft, который работает в MDI, чтобы подчеркнуть, что это законный способ создания приложения.

Я ненавижу плыть против течения, поэтому я ушел, как только понял, что, несмотря на то, что можно создать приложение MDI с современным приложением Microsoft, таким как silverlight, wpf и, возможно, даже с Windows-Phone, Microsoft действительно обескураживает его и не не предлагаю никакой поддержки (насколько я знаю).

Надеюсь, это поможет другим, которые задаются вопросом, что случилось с нашим старым добрым MDI "Отец".

3 голосов
/ 29 октября 2010

Я не думаю, что это встроенный способ сделать это. Однако вы можете захотеть купить набор пользовательских элементов управления у кого-то, например DevExpress, Component One, Infragisitcs, Telerik ... Я думаю, что большинство из них будет иметь такой же элемент управления, как VS2010. Я знаю, что DevExpress делает.

...