Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 数据网格中的快速轻量级绘制方法_Wpf_Performance_Datagrid_Draw_Timeline - Fatal编程技术网

Wpf 数据网格中的快速轻量级绘制方法

Wpf 数据网格中的快速轻量级绘制方法,wpf,performance,datagrid,draw,timeline,Wpf,Performance,Datagrid,Draw,Timeline,我需要一个“数据网格”中的某种时间线,角色有很多行 我的datagrid左侧工作得很好,因为只有文本 右边有点滞后 实际上,我的DataGridTemplateColumn位于时间轴部分的第一个索引处 我的DataGridTemplateColumn使用我的UserControl作为DataTemplate,在这里我为整行绘制了线条/矩形。这是因为我将对象的左边距设置为示例500,使其显示在右侧的其他列上 usercontrol是一个简单的网格,我在其中动态放置了矩形 其他列也是DataGri

我需要一个“数据网格”中的某种时间线,角色有很多行

我的datagrid左侧工作得很好,因为只有文本

右边有点滞后

实际上,我的DataGridTemplateColumn位于时间轴部分的第一个索引处

我的DataGridTemplateColumn使用我的UserControl作为DataTemplate,在这里我为整行绘制了线条/矩形。这是因为我将对象的左边距设置为示例500,使其显示在右侧的其他列上

usercontrol是一个简单的网格,我在其中动态放置了矩形

其他列也是DataGridTemplateColumn,但它们是空的

现在,我的想法是只制作一个列,在这里我可以放置一个大的usercontrol,并绘制该行的时间线

这样做的最佳实践是什么


谢谢

我看到你想做一个时间表,太好了。我认为网格可能不是最好的面板。我认为在这种情况下,您应该实现自己的定制面板。制作自定义面板非常好,因为您可以设置项目的显示方式,还可以添加动画或拖动行为。您可以看到以下页面:

  • (这是我开发的一个面板,你可以看到,通过面板,你可以为物品添加精彩的行为,你只需要一个好主意)
我还附上了一些我找到的面板链接,看看,也许你能找到有用的东西

编辑



还有一件事我忘了,你可以在任何项目中设置控制属性ItemsPanel,这样你就可以在任何项目源中使用你的面板,例如在列表框中使用它。

好的,谢谢你的回答。但我将留在datagrid上,因为我不必处理滚动同步。使用两个控件很难实现,因为行的高度不同。现在我修改了代码,所以我自己在Overwriten函数OnRender中绘制了每一行。datagrid包含时间轴部分的一列。它工作得很好。再次感谢,我的结果是:尽管在撰写本文时可以说是一个很好的答案,但前两个链接不再有效。考虑更新它。你好,很抱歉有一个稍微偏离主题的问题,但是你如何在DATAGRID上绘制所有这些东西呢?您是在画布上创建画布还是使用OnRender()或其他方法?