这表/网格控制在WPF?(Which Table/Grid Control in WPF?)

2019-07-30 22:49发布

我期待显示表格数据(TV信道),但与选项,如数据网格/ UniformGrid /使用的FlowDocument /等表。 我想不出什么会是最好的选择。 主要的问题是,细胞大小不均匀,因为它变化的基础上的时间长了,我希望把他们之间的填充为好。 此外,我只需要能够显示该表的一部分,并让他们翻/下/左查看休息。

什么是最好的WPF控制选项的呢? 下面是我要为一个小例证。 在左上角的白色正方形是我想要的东西,在开始进行显示,并让他们滚动到它的其余部分。

Answer 1:

有几种方式来完成你想在这里做什么。 如果性能是不是一个问题,那么我会忽略虚拟化和尝试DockPanel的缺点在这里,你将不得不为了添加项目,而不是按照行添加。

另一种选择是使用两个堆叠板(每个方向上一个)。 这解决了添加问题,但需要使用更多的面板。

前面的两个两个选项需要个别项目有自己的高度/宽度集。

最后一个选择(取决于您的网格有多大),是使用固定大小的行和列的网格,跨行(使用项目ROWSPAN属性)。 这种方法的缺点是,我不知道有什么好方法来创建XAML的行/列的数目不详这种控制,所以你必须在代码中创建它让行/列的需要数量。

如果您有性能问题,你可以尝试使用VirtualizingStackPanel 。 如果这还不能满足您的性能需求,那么你将需要继承VirtualizingPanel和定制以满足您的特定需求。

见这里的上面板性能的更多信息。

我建议您尝试这两个StackPanel第一种方法,那么VirtualizingStackPanel方法,最后,如果还是不行,请尝试VirtualizingPanel

填充是很容易通过设置完成Margin上的每个子控件属性。

滚动使用ScrollViewer



文章来源: Which Table/Grid Control in WPF?