2013-06-12 2 views
2

Я новичок в разработке графического интерфейса, и я знаю, что преобразование между Winforms и WPF ранее было рассмотрено. Однако, как новичок, я все еще не совсем понимаю, как лучше всего двигаться вперед, и я был бы очень благодарен вам за помощь.Более эффективное преобразование WinForms в WPF или WPF в Winforms

У меня в основном есть два образца кода SDK, которые я пытаюсь объединить. Один пример кода написан в winforms, а другой в WPF. Поскольку я предполагаю, что мой конечный продукт включает анимацию, я считаю, что должен перевести код winforms в WPF (pls исправить меня, если вы не согласны). Однако это сложный и длинный код, и поскольку я относительно более удобен с winforms, я задавался вопросом, следует ли мне рассматривать WPF для перевода winforms и использовать Open GL control. Каков наиболее эффективный способ продвижения вперед? Из примера кода winforms мне нужны данные из DataGrid и из WPF, мне нужен доступ к текущему изображению 512x512, отображаемому в настоящее время на WindowsFormsHost.

Благодарим всех заблаговременно за помощь!

+1

Очень сложно дать совет, не зная вашего опыта, кода примера, о котором вы говорите, или того, что вы пытаетесь сделать. –

+0

Код, который я хотел бы преобразовать из Winforms в WPF, находится в [link] (http://www.naturalpoint.com/optitrack/downloads/developer-tools.html) в папке Samples/winformsSample. У меня мало опыта работы с C#, но благодаря этому сайту и WPF в 24-часовой книге я быстро обучаюсь. Я пытаюсь объединить данные из камер отслеживания движения (x, y и Z позиционные данные маркеров, отображаемых в DataGridView пример кода) с данными живого изображения для создания данных трехмерного тома. Спасибо за вашу помощь! @DourHighArch – FunkDoc

+0

Если вам не нужен визуальный эффект анимации или пользовательский интерфейс для глазных конфет, я предлагаю вам пойти на Winforms. Это простое и быстрое время разработки. В противном случае, если у вас есть команды, вы должны убедиться, что ваш член команды знает WPF. – Cheung

ответ

2

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

Вы можете даже сделать это на куски с помощью windows forms wpf wrapper. Затем, как только у вас будет все преобразованное, вы можете просто удалить любые обертки и это будет полное применение МОФ

SO question about advantages of WPF to winforms

5

Я новичок в разработке GUI

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

преобразования между Winforms и WPF

Проблема не код сам по себе. Проблема в том, менталитет, с которой написано:

  • Все «традиционные» WinForms код позади абсолютно ненужный в WPF.

  • В WPF есть DataBinding (ну, на самом деле WinForms есть что-то под название привязка данные, но это смехотворно по сравнению с WPF (так же, как все остальное в WinForms). Это полностью устраняет необходимость создания или манипулировать ЛЮБЫЕ элементы пользовательского интерфейса в процессуальный кодекс. Все определяется в XAML, а затем DataBound соответствующих моделей и ViewModels. Вот почему существует огромная разница в менталитете, необходимый для этого.

    • в WinForms, интерфейс хранит информация о его состоянии. для для чтения/извлечения/изменения этой информации, вам необходимо получить доступ к этим элементам пользовательского интерфейса в коде.
    • В WPF ViewModel и модель (простые классы, которые вы создаете для хранения ваших данных и которые вообще не привязаны к пользовательскому интерфейсу) хранят эту информацию о состоянии. Чтобы читать/извлекать/изменять эту информацию, вы НЕ обращаетесь к элементам пользовательского интерфейса в коде.

МОФ Визуальное дерево очень намного сложнее, чем WinForms X, Y подход. Поэтому, удерживая некоторый элемент пользовательского интерфейса, глубоко зарытый внутри, допустим, что DataTemplate используется для ItemsControl, который находится внутри 10, используемого в качестве CellTemplateDataGrid - это то, что вы действительно не хотите вставлять. Поверь мне.

Я предлагаю вам читать Excellent Explanation @ Rachel и связывать записи в блогах, чтобы лучше понять, что требуется для перехода от неуклюжего, скучного, слишком много кода для всего мира winforms в красивый, настраиваемый, масштабируемый, приятный мир XAML и DataBinding (применимо ко всем технологиям на основе XAML WPF, WinRT, Silverlight, Windows Phone и т. д.).

Как я предусмотреть свой конечный продукт, чтобы включить анимацию

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

Все скажут вам, что winforms предназначен только для поддержки устаревших приложений, но больше не подходит для тех, кто начинает какой-либо серьезный проект.

Однако это сложный и длительный код и как я относительно более комфортно с WinForms

После того, как вы узнаете MVVM, вы быстро поймете, что WPF требует 10% кода, необходимого, чтобы сделать что-нибудь в WinForms. Ваш сложный и длинный код (вероятно, код-код) будет уменьшен до Простые, простые свойства и INotifyPropertyChanged. Вот как вы код в WPF.

+0

Downvoter, поинтересуйтесь комментарием? тот факт, что вам не нравится мой ответ, не делает его менее правдивым. winforms - дерьмовый динозавр. –

+0

Это хороший ответ. –

+0

Спасибо @HighCore! Я продаюсь, WPF, безусловно, путь. Я ценю, что кривая обучения крутая, и это будет болезненно, но я думаю, что это того стоит. Его позор я пока не могу голосовать. – FunkDoc

Смежные вопросы