2010-12-28 5 views
6

Этот вопрос был опубликован раньше, но я не могу найти хороший ответ.WPF MDI children

Я хочу детей MDI в моем приложении WPF. И я хочу, чтобы эти дети были полностью совместимы с WPF.

.Net WPF не имеет детей MDI (окна в главном окне). Некоторые говорят, что это потому, что дизайн устарел, а графические приложения не должны разрабатываться именно так. Эти люди могут воздержаться от ответа на этот пост. Я знаю, что мне нужно. :)

Какие (предпочтительно свободные) альтернативы существуют для MDI WPF? Будут ли они работать с MVVM?

EDIT: ЛЮДИ - не проголосуйте за комментарии, которые говорят: «MDI НЕ ХОРОШО». Я специально попросил людей избежать этого. Я прошу MDI-окна, а не использовать MDI-окна.

+0

Что не так с ответами на вопросы, которые вы видели ранее? Если вы не скажете нам, почему эти решения не сработают для вас, люди будут публиковать их снова. Например: http://wpfmdi.codeplex.com/ –

+0

Я не помню, что с ним не так, но вы хорошо знаете, я должен был быть более конкретным. Я вернусь к этому, как только снова «в коде» (некоторое время в следующем году). –

+0

Просто попробовал свет MVVM с WPF-MDI. Я связал «Команды» в меню и кнопке в дочернем MDI (пользовательский контроль). Он работает нормально. –

ответ

3

Here вы найдете то, что ищете.

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

3

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

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

Клиент: Что?

Tab-based interfaces обычно считаются лучшей альтернативой MDI. Вы можете использовать класс TabControl и читать Josh Smith's MVVM article on MSDN Magazine, который демонстрирует, как разместить ваши представления в TabItems.

+2

Я не согласен, но я не согласен. Бывают случаи, когда мы хотим MDI. Скажем, например, клон mIRC, где все ожидают поведения окна MDI и хотят сразу следовать нескольким каналам. Мы не можем оставить его из-за нескольких плохих применений. –

+0

@Tedd, я согласен с тем, что MDI по-прежнему использует его, но поскольку WPF не поддерживает эту метафору из коробки, может быть сложно найти эмулированное решение, которое хорошо сочетается с MVVM ... –

+0

Полностью не согласен, MDI очень полезен для управления многими дочерними ОС под управлением. Просто посмотрите на кошмар, который является Photoshop CC - попробуйте Alt-tabbing в другое приложение. Приложения с вкладками хорошо для чего-то, но ужасно для других. MDI следует рассматривать как еще один инструмент в коробке, а не ненавидеть по соображениям моды. –

Смежные вопросы