Почему в классе Application (App) имеются файлы xaml и код позади файлов? - PullRequest
3 голосов
/ 10 июня 2011

В приложениях WPF все представления наследуются от System.Windows.Window и имеют связанный файл xaml и codebehind. Это кажется логичным.

Однако я запутался, почему у файла приложения, унаследованного от System.Windows.Application, есть файл xaml? Хотя это приложение, а не вид (не видно)? Я знаю, что этот файл обычно используется для определения ресурсов приложения и т. Д., И xaml предоставляет эффективный способ их определения. Но это также может быть сделано программно. Тогда какую выгоду получили дизайнеры wpf, имея xaml и код за файлами для «Приложения»? Разве одного из них было бы недостаточно?

Ответы [ 2 ]

5 голосов
/ 10 июня 2011

Однако я запутался, почему у файла приложения, унаследованного от System.Windows.Application, есть файл xaml? Хотя это приложение, а не представление (оно не видно)?

Помните, что XAML - это не язык пользовательского интерфейса, а общий декларативный язык. Хотя это правда, что он в основном используется для представления пользовательского интерфейса для WPF или SilverLigth, он также используется для объявления графа объектов в других технологиях, не связанных с пользовательским интерфейсом.

Первый пример, который мне приходит в голову, - это рабочий процесс (XOML является производным от XAML), SharePoint также использует XAML в некоторых скрытых частях, и я видел в проекте клиента использование XAML в качестве мета язык для создания веб-приложений (и да, на самом деле он выводит HTML).

Затем, чтобы ответить на ваш вопрос, у приложения есть оба файла (и это на самом деле не является обязательным требованием), потому что вы можете:

  • объявить некоторые объекты (в xaml)
  • переопределить поведение приложения (путем переопределения соответствующих методов)
1 голос
/ 10 июня 2011

Дизайнеры могут указывать ресурсы для всего приложения без ввода какого-либо кода и использовать его в любом окне. Это что-то вроде рута для всех окон. Например, если вы используете один стиль для каждого TextBox (или любого другого элемента управления) в каждом окне, вы можете указать его в App.xaml и связывать в любом месте без дублирования.

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