1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lanicon-WPFCoreUniversalApp

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
Readme.md

Fork me on Gitee

Проектная история

Я долгое время занимаюсь разработкой для ПК, в основном в области медицинского и промышленного программного обеспечения, поэтому решил создать универсальный шаблон для ПК, включающий медицинские системы, промышленные компоненты, образование, с использованием большого количества 2D и 3D графики, а также алгоритмов, чтобы облегчить быструю разработку в будущем. Ранее я также создавал некоторые пользовательские компоненты и представления, которые теперь можно использовать в этом проекте. Если у вас есть вопросы, вы можете присоединиться к QQ-группе для обсуждения: 658794308.

Описание проекта

WPFCoreUniversalApp начинается с нуля, основан на .NetCore31 и использует паттерн MVVM. В настоящее время подключена база данных MySQL. Проект будет разделен на две основные части: медицинская (Medical) и промышленная (Factory), включающие UserControl, CustomControl, Animation, 2D, ViewPort3D, запись журналов, взаимодействие с документами Excel, компоненты для QR-кодов, собственную ORM, IOC, аутентификацию и управление правами доступа и т.д. Кроме того, я создал некоторые часто используемые компоненты Десктопные пользовательские компоненты (на основе .Net Core3.1), такие как компонент для QR-кодов (конфигурируемый для создания любого QR-кода), MessageDialog (всплывающее окно с сообщением) и т.д.

  • UI макет------------------------------√
  • Анимация открытия и закрытия окон (2D и 3D)-----√
  • Регистрация и изменение пользователя---------------------√
  • ORM--------------------------------√
  • IOC----------------------------------√
  • Шифрование данных (MD5, DES)----------------√
  • Интерфейс MedicalReport--------------------√
  • Проверка пользовательских учетных записей-----------------------×
  • Распределение и управление правами доступа----------------------×
  • Журналы----------------------------×
  • Взаимодействие с документами Excel------------------------√
  • Графики (линейные, кривые, круговые, столбчатые и т.д.)-------------------√
  • Автоматическое обновление программы------------------------√
  • Дополнения по мере необходимости...

Экран входа (2D/3D): Эффект входа в систему

Основной код для анимации входа 3D:

<!--3D анимация-->
<userCtl:LoginAnimation3DControl Grid.ColumnSpan="2" Visibility="Visible"/>

<!--Если вы не хотите использовать 3D анимацию, выберите этот вариант-->
<Grid Grid.ColumnSpan="2" Visibility="Collapsed">
    <!--Вход пользователя-->
    <userCtl:LoginControl x:Name="Login"
        Visibility="{Binding UserOperationType,Converter={StaticResource LoginRegisterVisibilityConverter},ConverterParameter=Login}"/>

    <!--Регистрация пользователя-->
    <userCtl:RegisterControl x:Name="Register" 
        Visibility="{Binding UserOperationType,Converter={StaticResource LoginRegisterVisibilityConverter},ConverterParameter=Register}"/>

    <!--Забытый пароль-->
    <userCtl:ForgotPasswordControl x:Name="ForgotPassword" 
        Visibility="{Binding UserOperationType,Converter={StaticResource LoginRegisterVisibilityConverter},ConverterParameter=ForgotPassword}"/>
</Grid>

Эффект интерфейса системы медицинских отчетов (макет завершен, часть функциональных модулей)

  • Просмотр, регистрация, редактирование, обновление, удаление-----------------√
  • Шаблоны Excel, импорт и экспорт (Excel, Word)--------------------------√
  • Диагностика-------------------------------------------------√
  • Преобразование данных в PDF, XML, JSON-----------------------------×
  • Преобразование данных в графики (2D, 3D)-----------------------------√
  • ... Интерфейс системы медицинских отчетов Интерфейс системы медицинских отчетов

Диагностика позволяет просматривать изображения в виде карусели и детализированные панорамные изображения на 360 градусов

Эффект диагностики

Эффект среза 3D изображений (возможность срезать трехмерные объекты под любым углом), примеры есть в проекте, заинтересованные могут ознакомиться самостоятельно

Пример с кубом: принцип следующий: предположим, что в плоскости есть определенная точка P(0) (эта точка также находится в пространстве трехмерного объекта), нормаль к этой точке P(0) — P(n). Пусть координаты произвольной точки на плоскости будут P(x,y,z). Тогда уравнение плоскости можно найти через нормаль к плоскости. Если P(0)=(0,0,0), то уравнение сечения плоскостью будет: P(n).Xx + P(n).Yy + P(n).Zz = 0. Если P(0) не является началом координат, можно получить уравнение сечения плоскостью путем сдвига по оси Y. Таким образом, существует константа N, удовлетворяющая уравнению P(n).Xx + P(n).Yy + P(n).Zz + N = 0 (общее уравнение сечения плоскостью). Пусть угол между сечением плоскости и плоскостью XY равен α [0,π], а угол поворота сечения равен β [0,2π]. В результате я получил общее уравнение сечения плоскостью следующим образом (сначала вычисляется уравнение через начало координат, затем можно получить его через сдвиг): Общее уравнение сечения плоскостью Куб

Компоненты для графиков (теоретически могут отображать до 10 миллионов точек)

Компоненты для графиков

Поскольку разработка занимает много времени и сил (необходимо создавать анимационные эффекты, логику компонентов и т.д.), я внедрил сторонние компоненты. Подробнее см. в разделе управления пакетами. Кроме того, методы вывода 3D сферы и цилиндра я разместил в ~/DesktopUniversalFrame/Entity/ArithmeticInfer. Заинтересованные могут ознакомиться. Другие модели, такие как куб и параллелепипед, достаточно просты для создания; если возникнут трудности, можно посмотреть документацию Microsoft. После понимания принципов рисование 3D становится намного проще с использованием сторонних компонентов. В будущем я планирую выделить отдельный раздел для анимации в XAML и коде на серверной стороне. Изучив эти материалы, вы сможете создавать красивые визуальные интерфейсы.

Если вам пригодится этот проект, пожалуйста, поставьте звезду. Надеюсь на общение и обучение вместе с коллегами по разработке ПК. Если у вас есть вопросы, вы можете оставлять комментарии ниже. Основная цель проекта — создание компонентов и представлений, удовлетворяющих требованиям реальных рабочих задач. На этом все. Я продолжу кодирование!

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

WPF (.Net Core 3.1) на основе MVVM+шаблона View2D,3D Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lanicon-WPFCoreUniversalApp.git
git@api.gitlife.ru:oschina-mirror/lanicon-WPFCoreUniversalApp.git
oschina-mirror
lanicon-WPFCoreUniversalApp
lanicon-WPFCoreUniversalApp
Chance