使用WPF创建时间表?

对于所有WPF大师和WPF魔术师,听我说,听我说:)

我们已获得分配以创建名为Virtual Classroom Management System的WPF C#应用程序的任务。在此应用中,有User个(ProfessorAssistantAdministrator个)。任何用户都可以通过创建Appointment来预订/安排教室,这可以通过从该用户所属的机构中选择任何教室并说明Appointment的开始和结束日期来完成。在此应用程序的众多功能中,有一个我很想听听如何执行:)

此功能是日程安排概述。您可以在下面看到我可爱的idea,具有无与伦比的绘画能力:)

用户应该能够输入他/她想查看所生成的机构时间表(他/她所属)的开始日期和结束日期。

我需要以某种方式将约会的实际时间“ scale”添加到时间表中。

这是我的第一个WPF项目,我在大学2年级。我对GUI应用程序的了解不多,但是我可以并且将会学习。

因此,如果有人可以建议我从哪里开始?探索什么?如何为此设置布局?在哪些组件上中继? DataGrid,画布?如何结合它们?希望我不会因为提出这个问题而声名狼藉:)或者,如果这太困难了,还有其他建议吗?

P.S。我有一个建模的类,并且一切正常,只需要这个GUI部分

suzhuang 回答:使用WPF创建时间表?

我假设您不能使用商业控件:)。老实说,没有冒犯性,您在问一个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 =透明。这将使您很难从“蓝色”变为“透明”。

因此,基本上,您将计算整个矩形的宽度,并计算想要的矩形位置的百分比,并按照我的说明构建渐变色终止集合。

有道理吗?

本文链接:https://www.f2er.com/3121063.html

大家都在问