Лучший способ показать разные страницы wpf в mainWindow? - PullRequest
3 голосов
/ 14 декабря 2010

У меня есть несколько страниц Wpf в моем проекте, эти страницы имеют разные формы и пользовательский интерфейс управляют отдельной темой. На изображении ниже показано главное окно и есть две кнопки. Я хочу показать определенную страницу, когда нажимаю на кнопку «+» или «Редактировать» с помощью выделенного элемента управления «Рамка».

уместно это работает:

Page1 me = new Page1(); 
mainFrame.Content = me; 

Но у него звук навигации IE, и после перехода на страницу 2 появляется панель инструментов. Есть ли лучший способ показать разные страницы и не используя фрейм?

alt text

Ответы [ 4 ]

6 голосов
/ 14 декабря 2010

Вы можете преобразовать Page в UserControl.Затем вы можете поместить этот элемент управления в другой контейнер, такой как Grid.Вам придется вручную поменять местами страницы в контейнере при навигации, но похоже, что вы все равно это делаете.

1 голос
/ 08 ноября 2011

Мне удалось установить для NavigationUIVisibility элемента управления фреймом значение Hidden.Это решило проблему для меня.Я использую Visual Studio 2010, хотя он может быть неприменим к более старым версиям VS.

1 голос
/ 14 декабря 2010

Цель элемента управления Frame - разрешить навигацию. Если вам не нужна навигация, не используйте Frame. Вы можете отключить навигационную панель инструментов, но это на самом деле не отключит навигацию - есть кнопки мыши и сочетания клавиш для перехода назад.

Если вы просто хотите разместить элемент пользовательского интерфейса без навигации, используйте что-то более простое, например, элемент Border - поместите содержимое в его свойство Child. Вы можете изменить Child столько раз, сколько захотите во время выполнения.

0 голосов
/ 12 декабря 2012

Ян Гриффитс, то, что вы предлагаете, значительно увеличивает нагрузку на разработчика. И вы выходите за пределы основной парадигмы XAML.

В моем случае я разрабатываю игровое приложение и в качестве платформы пользовательского интерфейса выбрал WPF. Для меня это означает вводный экран, выбор персонажа и т. Д. Цель Pages состоит в том, чтобы определить навигационную потребность такого приложения.

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

Мне было бы любопытно, если бы я мог переопределить горячие клавиши навигации и тому подобное в рамках существующего парагимна, но это правильно в его собственном потоке.

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