Как реализовать mdi в приложении WPF
Я новичок в WPF, и мне очень нравятся MDI-приложения.
Это позволяет мне быстро перемещаться между окнами и сравнивать содержимое разных окон. Кроме того, когда-то содержимое одного окна полезно для другого, поэтому я могу копировать и вставлять. Я думаю, что это отличный пользовательский интерфейс для рабочего режима.
Правильная или неправильная практика, мне это нравится.
Я видел Stack вопрос о переполнении MDI в WPF, и там они предоставили Visual  , Studio 2010 в качестве примера. Я не понимал, можно ли и как можно реализовать эту среду: например, иметь вкладки, которые можно отрывать на независимом экране (что менее важно для меня) и переставлять бок о бок вместе с остальными вкладками.
Я предполагаю, что я ищу "систему компоновки стыковки в WPF", googleing это предложение сторонних компонентов.
Я думаю, что начну с "нормального" приложения. Похоже, здесь нет простой реализации из коробки.
Ответы
Ответ 1
В CodePlex есть два популярных проекта:
- AvalonDock - библиотека стыковки в стиле Visual Studio и
- WpfMdi, который является классическим диспетчером окон MDI.
AvalonDock поддерживает отдельные комбинации вкладок бок о бок, а также отрывающие окна, такие как Visual Studio, поэтому он должен предоставить вам все, что вам нужно, хотя и не совсем классический MDI. Он используется в SharpDevelop, поэтому вы можете загрузить его для воспроизведения и получить представление о том, как можно использовать библиотеку док-станции.
Edit:
И я нашел третий, который выглядит очень эффектно: Chronos WPF.
Ответ 2
По какой-то причине Microsoft решила, что MDI ошибается. Существует много информации об этом при поиске в Google.
Я считаю, что неправильно убивать то, что понравилось многим людям, и на форумах, которые я посетил, некоторые люди указывают на новый пример Microsoft, который работает в MDI, чтобы подчеркнуть, что это законный способ создания приложения.
Я ненавижу плавать против потока, поэтому я ушел, как только понял, что, несмотря на то, что возможно создать приложение MDI с современным приложением Microsoft, таким как silverlight, wpf и, возможно, даже windows-phone, Microsoft действительно распознает его и не делает "Я предлагаю любую поддержку (насколько я знаю).
Надеюсь, что это помогает другим узнать, что случилось с нашим добрым старым MDI "Отцом".
Ответ 3
Я не думаю, что это встроенный способ сделать это. Однако вы можете захотеть взглянуть на покупку набора пользовательских элементов управления от таких людей, как DevExpress, Component One, Infragisitcs, Telerik... Я думаю, большинство из них будет иметь аналогичный контроль над тем, как работает VS2010. Я знаю, что DevExpress делает.