Основы WPF?

В университете мы преподаем .NET (как VB, так и C #) с использованием Windows Forms. Мы хотим представить концепцию Windows Presentation Foundation (WPF) нашему продвинутому курсу. Какие основы WPF нужно учить студентам, чтобы получить базовые знания о WPF?

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

Спасибо за ваше время!

6
задан Benny Skogberg 30 August 2010 в 13:12
поделиться

6 ответов

Я действительно не верю, что трех или четырех тем достаточно. Но говоря о наивысших приоритетах, я бы сказал:

  1. XAML и расширения разметки,
  2. макет и панели,
  3. маршрутизируемые события,
  4. зависимость и прикрепленные свойства.
6
ответ дан 8 December 2019 в 05:19
поделиться

Если вы думаете о том, как дидактически структурировать свой курс, вам следует рассмотреть книгу Петцольда. То, как он структурирует свои главы, отлично подходит для живых курсов. Она очень хорошо отлажена с дидактической точки зрения, и мы получили хороший опыт, структурируя курс на основе этой книги. Мы также убедились, что это особенно хорошо работает для людей, имеющих опыт работы с Windows Forms. Он начинается только с кода (C#) и только позже представляет XAML. Это очень помогает понять концепции фреймворка.

3
ответ дан 8 December 2019 в 05:19
поделиться

Не зря все они называются фундаментальными. У вас должно быть хотя бы общее представление обо всех них, если вы планируете создать какое-либо успешное приложение WPF.

Если бы мне нужно было выделить некоторые вещи, чтобы ваш класс мог хотя бы приступить к созданию чего-то, я бы, вероятно, сказал:

XAML и привязка данных являются обязательными. Свойства зависимостей занимают второе место. Ввод/команды/маршрутизируемые события также будут включены.

2
ответ дан 8 December 2019 в 05:19
поделиться

Свойства зависимостей, Маршрутизированные события и модель макета абсолютно необходимы, на мой взгляд. Далее идут Привязка данных и MVVM.

Я не гуру WPF, но я думаю, что технически WPF намного сложнее, чем Windows Forms, и если студенты будут знакомы с более поздними версиями, будет сложно кодировать, используя «WPF-способ» (особенно , если нет фона html/xml). Я сомневаюсь, что с помощью WPF можно написать надежный код, не зная некоторых его основных аспектов. WPF действительно плохой выбор для быстрого или простого пользовательского интерфейса. Чтобы погрузиться в нее, требуется значительное количество времени на обучение.

2
ответ дан 8 December 2019 в 05:19
поделиться

Когда я начал работать с WPF, мне очень помогла книга Чарльза Петцхольда "Приложения = код + разметка". Первая половина книги полностью написана на C#, в ней изучаются основные понятия WPF (свойства зависимостей, обработка событий и т. д.) без какого-либо XAML. Вторая половина книги знакомит с концепцией XAML и ее связью со всем, что вы узнали в первой половине книги. Если бы я вел курс по WPF, я бы определенно изложил все таким же образом — сначала преподавал концепции в коде, а затем вводил XAML.

1
ответ дан 8 December 2019 в 05:19
поделиться

Хотя это довольно субъективно, я думаю, что хорошая четверка будет (из этой ссылки):

  • Дерево элементов и сериализация: Это совершенно новое от WinForms к WPF и получение понимание того, как работает визуальное и логическое дерево, очень важно для понимания того, как все делается в WPF.
  • События (WPF) — Опять же, это существенно отличается от WinForms и привносит все преимущества моделирования событий WPF.
  • Стили и шаблоны — это то, что оживляет WPF. Все привязки к пользовательскому интерфейсу, а также все, что не относится к этой категории.
  • Система компоновки — Ну, это WPF, не так ли? Макет — неотъемлемая часть процесса.

Помимо этого, важны Свойства зависимостей, а также как минимум понимание того, как работает XAML. Когда дело доходит до WPF, нет реального «единственного варианта». Это совершенно новый способ ведения дел, если вы работали с такими моделями, как WinForms. Я бы постарался узнать как можно больше.

1
ответ дан 8 December 2019 в 05:19
поделиться