【问题标题】:Layout System in WPFWPF中的布局系统
【发布时间】:2011-12-27 14:21:45
【问题描述】:

我想在代码后面手动触发 ItemsControl 的测量/排列布局传递,而无需用户交互。可能吗?如果是,如何?我试过InvalidateMeasure()UpdateLayout(),但没用。

【问题讨论】:

  • 你真正的问题是什么?为什么需要触发布局管理?

标签: wpf layout measureoverride


【解决方案1】:

使用InvalidateVisual 方法调用重新渲染:

使元素的渲染无效,并强制一个全新的 布局通行证。布局循环完成后调用 OnRender。

但是,由于 Microsoft 建议您几乎不应该在应用程序中手动使用它,因此如果我们知道的话,您的问题可能还有另一种解决方案(例如正确使用依赖属性)。

【讨论】:

  • 即使这样也行不通。在哪里调用这个方法?来自 ItemsControl 还是来自 ItemsPanel?
  • 请定义“不工作”。发生什么了?什么不会发生?你预计会发生什么?
  • 我在控件的 ItemsPanel(比如我的自定义面板)的 Measure Override 中有一个断点。我正在尝试您在 ItemsControl 和 ItemsPanel 中所说的方法。但是断点没有命中。
猜你喜欢
  • 2011-05-11
  • 2012-06-15
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 2019-10-21
  • 1970-01-01
  • 2021-01-25
  • 1970-01-01
相关资源
最近更新 更多