【问题标题】:Gantt-like view/usercontrol in WPF, how to createWPF中类似甘特图的视图/用户控件,如何创建
【发布时间】:2014-11-17 21:43:26
【问题描述】:

我需要在 WPF 中创建一个用户控件或视图,它能够像在日历中一样显示标题中的天数和垂直用户列表,并且对于每个用户,就像放置的计划栏一样在天数下方的网格内,将显示计划执行的天数。它类似于 Gantt 视图,可从 Telerik 或 DevExpress 获得,但我不允许使用任何付费资源/控件/工具包。问题是我不知道如何开始,必须使用什么布局,什么控件等等。

喜欢这里:

我尝试垂直创建一个 ListView,为每个用户水平创建 ItemsSource,但在这种情况下,我需要为每一行绑定,即使用户在那段时间没有任何计划,所以会导致太多无用绑定,并且此解决方案也无法根据屏幕大小进行调整,除非您更改绑定到的元素数量。

我只需要在存在数据的地方以类似于图像的方式显示一些东西。这意味着我需要一个容器控件,它将包括标题和显示计划的泳道。

此外,宽度必须是可调整的,这样用户拥有的屏幕越多,横向可见的天数就越多。

我怎样才能创建它? What Controls,我必须使用哪些控件?

我希望得到类似于以下示例的答案: 容器控件:ListView 水平 泳道:GridView 或 Canvas 条形:简单的矩形

提前谢谢你!

编辑

我找到了一个时间线项目。它是开源的,并且有很好的例子。 CodePlex Timeline project

【问题讨论】:

  • 有趣的挑战,但对于 StackOverflow 来说太宽泛了。发布您已经尝试过的相关代码和 XAML。

标签: c# wpf


【解决方案1】:

我会重新考虑第三方控制的事情;稳健地建造它比购买它要贵得多(取决于你的每小时成本)。

如果您想自己构建它,您将需要以下内容:

  • 内容水平和垂直滚动
  • 行和列中的标题分别垂直和水平滚动,与上一项同步。
  • 项目模板、连接器模板
  • 块之间的依赖管理形式(数据层次结构)。
  • 连接器的路由,它们需要位于单独的层中,因为它们跨越多个泳道。还需要合并多个箭头。

要求相当严格,需要大量代码。

【讨论】:

  • 我会接受这个作为解决方案,因为它最适合我的问题。但是,现在我正在尝试创建自己的东西。感谢您的信息!
【解决方案2】:

我想在上面回复Bas Brekelmans。您无法在任何合理的时间/成本内构建您在屏幕截图中显示的所有内容(依赖项、缩放时间线、进度、调整大小以适应等)。既然已经完成了,为什么还要重新发明轮子?

RadiantQ's WPF Gantt 是一个非常全面的包,可以让您实现上面提到的所有内容,包括不同的行高、假期等。看看他们的online demo,它基于 Silverlight,但具有类似于WPF 甘特图。

当然有试用版可以下载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 2017-11-14
    相关资源
    最近更新 更多