Меню навигации для автономного приложения WPF - PullRequest
1 голос
/ 03 августа 2010

Я только начинаю с wpf (в смеси 4), и я хотел бы создать приложение, которое имеет боковое меню для изменения содержимого. То, что я ищу, это что-то вроде Word 2010 в меню файла. Если вы щелкнете по меню слева, содержимое справа изменится соответствующим образом. Я прочитал статьи о вложении page.xaml во фрейм и изменил источник навигации фреймов на каждую страницу. Это правильно? Когда я это делаю, появляется панель навигации вверху. Я могу легко избавиться от этого, но мне кажется, что я иду по неверному пути к тому, чего я хочу достичь.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 11 декабря 2010

Просто чтобы принять это во внимание, оба решения, основанные на TabControl и Frame, чем-то похожи на крайности спектра.Элемент управления вкладкой создает очень тесную связь между состоянием вкладки и отображаемым пользовательским интерфейсом (например, вам может быть трудно перейти в диалог, для которого нет явного элемента вкладки), тогда как фрейм обеспечивает относительно слабую связь, но может бытьизлишним для этого сценария, так как он направлен на поддержку полноценной линейной навигации со стеком истории / страниц.(Например, Prism предлагает аналогичный механизм благодаря своей концепции «регионов».)

Средой может быть основной пользовательский интерфейс «оконная рама» с элементом-заполнителем и ваши отдельные «страницы»производные от UserControl, что делает их обычными элементами пользовательского интерфейса.Чтобы переключиться на определенную страницу в вашем пользовательском интерфейсе, необходимо создать (посредством кода или ресурсов XAML) соответствующий пользовательский элемент управления и установить его в качестве свойства Content вышеупомянутого элемента-заполнителя.(По сути, это тот же механизм, который вы упомянули для VB, где вы скрываете / отображаете подчиненные формы.)

Таким образом, есть ряд вариантов на выбор, в зависимости от реальных ограничений вашего сценария.

0 голосов
/ 11 декабря 2010

Самый простой код для этого - создать TabControl с TabStripPlacement="Left".Например:

        <TabControl TabStripPlacement="Left">
            <TabItem Header="Tab1" />
            <TabItem Header="Tab2" />
            <TabItem Header="Tab3" />
        </TabControl>

Вы можете применить Styles для дальнейшего изменения UI, цветов и внешнего вида.

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