Требует ли приложение WPF использования XAML? - PullRequest
4 голосов
/ 07 января 2012

Я хочу изучать C #, и кажется, что все переходят с использования WinForms на использование WPF.Приложения WPF кажутся мне намного более сложными из-за использования файлов .XAML, которые используются для создания форм.

Я просто спрашиваю, прежде чем я действительно буду вовлечен, является ли файл XAML единственным способомсоздавать приложения WPF?Есть ли более простой способ?Я знаю, что мог бы просто научиться использовать WinForms, что кажется намного проще, поскольку у вас в основном есть объект Form, который вы работаете с кодом, но, как я уже говорил, я думаю, что было бы лучше создавать приложения WPF

Ответы [ 5 ]

10 голосов
/ 07 января 2012

XAML делает вещи намного проще, если вы знаете, как его использовать, потому что он более читабелен и декларативен, но вы можете (в значительной степени) делать все что угодно в коде C #, если хотите.

например

<Border BorderBrush="Red">
    <TextBlock Text="Lorem Ipsum"/>
</Border>

против

var border = new Border();
border.BorderBrush = Brushes.Red;
var textBlock = new TextBlock();
textBlock.Text = "Lorem Ipsum";
// The following step is implicit in XAML via the structure
border.Child = textBlock;

Хотя это можно записать более кратко и иерархически:

new Border
{
    BorderBrush = Brushes.Red,
    Child = new TextBlock
    {
        Text = "Lorem Ipsum"
    }
};

Как правило, я всегда рекомендуюПри использовании XAML возможны следующие причины:

  • Анализатор оптимизирует построение дерева в соответствии с системой компоновки WPF.
  • Создание DataTemplates в коде не поддерживается.Конструкция с использованием FrameworkElementFactories устарела в пользу использования XamlParser (и я определенно не рекомендую манипулировать строками XAML в коде).
  • Разделение между пользовательским интерфейсом и кодом.
5 голосов
/ 07 января 2012

XAML, безусловно, не единственный способ создания приложений WPF.После запуска через несколько инструментов сам XAML переводится в C # / IL, который используется для создания пользовательского интерфейса.Ничто не мешает вам писать точно такой же код и создавать WPF-форму вручную.

Я бы предостерег вас, если вы не примете этот подход.XAML, безусловно, является предпочтительным инструментом для создания приложений WPF.Это будет в подавляющем большинстве веб-примеров.Существует гораздо меньше примеров приложений WPF с ручным кодированием.

2 голосов
/ 07 января 2012

Да, вы можете кодировать чистый WPF, но я не рекомендую его.

Книга Петцольда Приложение = код + разметка поможет вам использовать чистый WPF из кода, прежде чем приступить к использованию XAML.,Он легко доступен из вторых рук, и вы можете увидеть пример кода на сайте.Он также доступен онлайн на сайте электронной книги Safari , так что вы можете бесплатно читать его с пробной учетной записью в течение нескольких недель.Его книга - очень серьезная попытка научить вас WPF без XAML , мешающего , в отличие от подхода, основанного на XAML во многих других книгах.

Визуальный редактор в VS2010 был намного лучшечем предыдущий, так что вам не обязательно разбираться в XAML для создания ваших интерфейсов.Я также предлагаю попробовать инструмент Expression Blend, чтобы посмотреть, сможете ли вы использовать его «дизайнерский подход» к созданию интерфейса.

WPF обладает огромной гибкостью в выборе того, что вы делаете.Я выбрал более ориентированный на код подход и использую XAML для макета и стиля, но связываю данные и команды в коде.Это дает более чистый стиль XAML и избавляет от необходимости изучать некоторые нюансы того, как указывать привязки в XAML.Для облегчения обучения я рекомендую начать с этого подхода.

Я также предлагаю вам начать использовать шаблон MVVM с такой инфраструктурой, как MVVMLite , которая обеспечит вам большую инфраструктуруи помочь с разделением графического интерфейса и логики.

2 голосов
/ 07 января 2012

Нет, не нужно, но в состояниях @HB это облегчает.

Если вы используете и IDE, такие как Visual Studio, точно так же, как WinForms, у вас есть дизайнер плюс Expression Blend.Если вы обнаружите, что XAML сначала ошеломляет, возможно, поиграйте с этим, а не переходите прямо к XAML.

2 голосов
/ 07 января 2012

Несмотря на то, что вы МОЖЕТЕ собрать все в коде, XAML IS - простой способ создания приложений WPF.Подобные действия также помогают отделить ваш взгляд от логики вашей программы.В идеале команда разработчиков WPF должна состоять как минимум из одного программиста / дизайнера, который отвечает, так сказать, за XAML (или визуальную сторону) вещей.они будут делать анимацию и другие визуальные элементы.и, по крайней мере, одного «нормального» разработчика, который отвечает за логику программирования и тип модели данных.Конечно, это не идеальный мир.

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