Создание расписания с использованием WPF? - PullRequest
0 голосов
/ 12 ноября 2019

Для всех гуру WPF и магов WPF, услышь меня, услышь меня:)

Нам дано задание на создание приложения WPF C # под названием Virtual Classroom Management System. В этом приложении есть User с (Professor с, Assistant с и Administrator с). Любой пользователь может забронировать / запланировать классную комнату, создав Appointment с, что будет сделано путем выбора любой классной комнаты из учреждения, к которому принадлежит этот пользователь, и с указанием даты начала и окончания Appointment. Среди множества функций этого приложения есть один, который мне интересно услышать, как его выполнить :)

Эта функция, ее величество, обзор расписания . Вы можете увидеть мою прекрасную идею ниже, с бесподобными способностями к рисованию:)

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

Мне нужно как-то "scale" график с реальной продолжительностью встречи.

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

Итак, если кто-то может подсказать, с чего мне начать? Что исследовать? Как установить макет для этого? На какие компоненты включить? DataGrid, Canvas? Как их совместить? Надеюсь, у меня не будет плохой репутации, если я задам этот вопрос :) Или, если это слишком сложно, есть другие идеи о том, как это сделать?

PS У меня есть смоделированные классы, и у меня все работает, просто нужен этот графический интерфейсчасть

1 Ответ

1 голос
/ 12 ноября 2019

Я предполагаю, что вы не можете использовать коммерческий контроль :). Если честно и без обид, вы спрашиваете об элементе управления временной шкалой Outlook, который является очень сложным элементом управления, но я укажу вам правильное направление и предположу, что вам просто необходимы базовые функции.

По горизонтали, например, для первой строки у вас не было бы 3 прямоугольников, у вас был бы только один, растягивающий всю ширину, для простоты назовем его от 0 до 99.

Чтобы создать иллюзию3 прямоугольника (или сколько угодно), вы бы использовали горизонтальный LinearGradientBrush с «жесткими переходами».

Итак, допустим, вы хотите синий прямоугольник от 0 до 10 и зеленый прямоугольник от 15 до 20,вы бы сделали что-то вроде:

GradientStop Offset=0, Color=Blue
GradientStop Offset=0.10 Color=Blue   (0.10 = 10/100)
GradientStop Offset=0.10 Color=Transparent         (the transparent will give the illusion of a gap from 10 to 15)
GradientStop Offset=0.15 Color=Transparent
GradientStop Offset=0.15 Color=Green
GradientStop Offset=0.20 Color=Green

Обратите внимание на двойные смещения, это хитрость, чтобы получить полный разрыв с LinearGradientBrush. Т.е. у вас есть .10 = синий и .10 = прозрачный. Это даст вам сложный разрыв от синего к прозрачному.

Таким образом, в основном, вы вычислите ширину всего прямоугольника и вычислите проценты в местах, где вы хотите прямоугольники, и построите свою коллекцию градиентных остановок, как я показал.

Имеет смысл?

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