首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当SharedSizeGroup在SharedSizeGroup生成的项中时,ItemsControl奇怪的跳跃/闪烁

当SharedSizeGroup在SharedSizeGroup生成的项中时,ItemsControl奇怪的跳跃/闪烁
EN

Stack Overflow用户
提问于 2019-06-04 08:25:05
回答 1查看 153关注 0票数 1

问题(发生在绑定到ItemsSource的切换列表上--当带有SharedSizeGroup的行消失片刻时):

所以我有一个GridIsSharedSizeScope="True"。我正在构建的控件是一个日历/调度程序控件。

我有一个TimeRuler控件,需要与标题对齐(下面屏幕截图中的橙色矩形)。我用SharedSizeGroup来做这个。问题是SharedSizeGroupItemsControl生成的项中,这导致了一些奇怪的延迟,就像您在gif中看到的那样。

是否在 ItemsContainerGenerator呈现第一项或完成加载后使其重新呈现ItemsContainerGenerator?

导致问题的片段:

代码语言:javascript
复制
<!--  to even time ruler out  -->
<Grid
    Grid.Row="0"
    Grid.Column="0"
    Grid.ColumnSpan="2"
    Margin="0,-1,0,0">
    <Grid.RowDefinitions>
        <!-- both SuperHeader and LocationHeader are rendered later and this is causing this weird flickering/jumping -->
        <RowDefinition SharedSizeGroup="SuperHeader" />
        <RowDefinition SharedSizeGroup="LocationHeader" />
    </Grid.RowDefinitions>
</Grid>

视觉树或多或少:

这可以解决这些高度固定和不使用SharedSizeGroup,但它将不再那么灵活.

或者确保ItemsControl永远不会是空的,例如使用ObservableCollection,添加新项,然后删除旧项。这样,RowDefinition和SharedSizeGroup总是出现在视觉树中.

很烦人..。我认为在这种情况下甚至不可能使用SharedSizeGroup。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-05 12:44:38

替换绑定到ItemsSource的集合从来没有我想要的那么快。也没有清理和添加项目。它使一切都重新渲染,而且速度慢得令人痛苦。

由于找不到更好的解决方案,我只添加(填充)一次日项目,然后使用items[i]语法替换它们。这样,每次您想要显示不同日期范围时,就不必完全重新呈现UI了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56440043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档