Я новичок в разработке GUI
Я должен предупредить вас, что WPF имеет очень крутой кривой обучения. Я бы сказал, что он не подходит для неопытных.
преобразования между Winforms и WPF
Проблема не код сам по себе. Проблема в том, менталитет, с которой написано:
Все «традиционные» WinForms код позади абсолютно ненужный в WPF.
В WPF есть DataBinding (ну, на самом деле WinForms есть что-то под название привязка данные, но это смехотворно по сравнению с WPF (так же, как все остальное в WinForms). Это полностью устраняет необходимость создания или манипулировать ЛЮБЫЕ элементы пользовательского интерфейса в процессуальный кодекс. Все определяется в XAML, а затем DataBound соответствующих моделей и ViewModels. Вот почему существует огромная разница в менталитете, необходимый для этого.
- в WinForms, интерфейс хранит информация о его состоянии. для для чтения/извлечения/изменения этой информации, вам необходимо получить доступ к этим элементам пользовательского интерфейса в коде.
- В WPF ViewModel и модель (простые классы, которые вы создаете для хранения ваших данных и которые вообще не привязаны к пользовательскому интерфейсу) хранят эту информацию о состоянии. Чтобы читать/извлекать/изменять эту информацию, вы НЕ обращаетесь к элементам пользовательского интерфейса в коде.
МОФ Визуальное дерево очень намного сложнее, чем WinForms X, Y подход. Поэтому, удерживая некоторый элемент пользовательского интерфейса, глубоко зарытый внутри, допустим, что DataTemplate
используется для ItemsControl
, который находится внутри 10, используемого в качестве CellTemplate
DataGrid
- это то, что вы действительно не хотите вставлять. Поверь мне.
Я предлагаю вам читать Excellent Explanation @ Rachel и связывать записи в блогах, чтобы лучше понять, что требуется для перехода от неуклюжего, скучного, слишком много кода для всего мира winforms в красивый, настраиваемый, масштабируемый, приятный мир XAML и DataBinding (применимо ко всем технологиям на основе XAML WPF, WinRT, Silverlight, Windows Phone и т. д.).
Как я предусмотреть свой конечный продукт, чтобы включить анимацию
Если вы собираетесь начать (или начальная) новый продукт, забыть WinForms. Он мертв. Он не поддерживает ничего, кроме уродливого материала по умолчанию. Его нельзя настроить/анимировать/украсить, не прибегая к множеству ужасных хаков.
Все скажут вам, что winforms предназначен только для поддержки устаревших приложений, но больше не подходит для тех, кто начинает какой-либо серьезный проект.
Однако это сложный и длительный код и как я относительно более комфортно с WinForms
После того, как вы узнаете MVVM, вы быстро поймете, что WPF требует 10% кода, необходимого, чтобы сделать что-нибудь в WinForms. Ваш сложный и длинный код (вероятно, код-код) будет уменьшен до Простые, простые свойства и INotifyPropertyChanged
. Вот как вы код в WPF.
Очень сложно дать совет, не зная вашего опыта, кода примера, о котором вы говорите, или того, что вы пытаетесь сделать. –
Код, который я хотел бы преобразовать из Winforms в WPF, находится в [link] (http://www.naturalpoint.com/optitrack/downloads/developer-tools.html) в папке Samples/winformsSample. У меня мало опыта работы с C#, но благодаря этому сайту и WPF в 24-часовой книге я быстро обучаюсь. Я пытаюсь объединить данные из камер отслеживания движения (x, y и Z позиционные данные маркеров, отображаемых в DataGridView пример кода) с данными живого изображения для создания данных трехмерного тома. Спасибо за вашу помощь! @DourHighArch – FunkDoc
Если вам не нужен визуальный эффект анимации или пользовательский интерфейс для глазных конфет, я предлагаю вам пойти на Winforms. Это простое и быстрое время разработки. В противном случае, если у вас есть команды, вы должны убедиться, что ваш член команды знает WPF. – Cheung