2010-08-03 2 views
1

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

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

+0

Панель навигации, на которую вы можете избавиться, делает ShowsNavigationUI = «False» в XAML страницы. Я действительно верю, что вы приняли неправильный тип проекта, хотя. Если вы работаете со страницами, вы находитесь в приложении WPF _browser_. Обычно я связываю автономно с приложением Windows (тип проекта приложения WPF). – Goblin

+0

Я работаю с приложением wpf. То, как я делал это в vb-формах, было скрыть/показать форму. Таким образом, чтобы изменить «страницы», например, от отчетов к обзору, я просто скрою контуры отчетов и покажу обзорные элементы управления. Теперь я пытаюсь сделать то же самое здесь, когда кнопка меняет часть основного окна. – Bbbh

ответ

2

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

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

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

0

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

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

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

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