Существует ли концепция главной страницы (как в asp.net) для WPF? - PullRequest
7 голосов
/ 19 марта 2011

Я запустил WPF-приложение (веб-приложение), и оно содержит несколько страниц. Я хочу реализовать концепцию главной страницы в WPF, чтобы при внесении изменений в дизайн / макет одной страницы все остальные страницы следовали примеру без копирования и вставки.

Ответы [ 5 ]

3 голосов
/ 19 марта 2011
3 голосов
/ 19 марта 2011

Я не думаю, что концепция мастер-страницы действительно применима в WPF, потому что там нет страниц. В WPF существуют стили, шаблоны и шаблоны данных. Мало того, что используя DockPanel и другие контейнеры, вы можете реализовать большинство функций, предоставляемых ASP.NET Master Pages.

В любом случае, если вам все еще нужны главные страницы, я предлагаю проверить эту статью: http://www.codeproject.com/KB/WPF/WPFMasterPageControl.aspx

HTH

1 голос
/ 28 сентября 2013

Вы можете использовать Prism фреймворк с открытым исходным кодом (можно загрузить из: шаблоны и практики: Prism ), и с его помощью вы можете создать ShellWindow, который можно использовать как MainWindow для вашего WPF проекта.Затем в своем окне Shell вы можете создать Regions и внедрить свои представления в эти регионы.

Ниже приведено то, что MSDN говорит о Shell (см .: Составление пользовательского интерфейса с использованиемPrism ):

Оболочка - это корневой объект приложения, который содержит основной контент пользовательского интерфейса.В приложении Windows Presentation Foundation (WPF) оболочкой является объект Window.В приложении Silverlight оболочкой является RootVisualUserControl.Оболочка играет роль главной страницы, обеспечивая структуру макета для приложения.Оболочка содержит одну или несколько именованных областей, где модули могут указывать виды, которые будут отображаться.Он также может определять определенные элементы пользовательского интерфейса верхнего уровня, такие как фон, главное меню и панель инструментов.Оболочка определяет общий вид приложения.Он может определять стили и границы, присутствующие и видимые в самом макете оболочки, а также определять стили, шаблоны и темы, которые будут применяться к представлениям, подключенным к оболочке.Обычно оболочка является частью проекта приложения WPF или основного проекта Silverlight.Сборка, содержащая оболочку, может ссылаться или не ссылаться на сборки, содержащие представления, которые должны быть загружены в областях оболочки.

Базовая структура оболочки Prism с WPF:

enter image description here

1 голос
/ 19 марта 2011

Вы можете использовать глобальные стили для придания единообразного внешнего вида всему вашему приложению.Что касается функциональности главной страницы.Посмотрите на шаблон MVVM.У Microsoft есть реализация, но есть и другие.

Это позволит вам определить оболочку в xaml и указать области, которые действуют как заполнители содержимого в ASP.NET.Затем вы пишете пользовательские элементы управления, которые загружаются в эти области оболочки.Хотя это намного сложнее, чем использование главной страницы в ASP.NET.Но концептуально схоже с макетом экрана.

Как всегда, неплохое место, чтобы начать получать обзор http://en.wikipedia.org/wiki/MVVM

Тонны больше материала на MSDN и т. Д.

1 голос
/ 19 марта 2011

используйте главное представление и поместите ContentControl с главным представлением, затем свяжите свойство Content со свойством в контексте данных и задайте для свойства экземпляр UserControl, который затем заполнит раздел содержимого.

Более подробную информацию я предоставлю позже

...