如何在 WPF 中的 scaletransform 动画期间和之后阻止元素重叠?

How does one stop elements from overlapping during and after a scaletransform animation in WPF?

我有一个列表框,其中包含基于 Style.Triggers 属性的 RenderTransform 项目,故事板动画包括 x 1.5y 1.5 的缩放变换。结果很糟糕,我正在寻找一种方法让项目停止重叠,如下图所示。

我解决了这个问题。我使用的是 RenderTransform.ScaleXRenderTransform.ScaleY。我将它们更改为 LayoutTransform.ScaleXLayoutTransform.ScaleY。发生这种情况是因为 LayoutTransform 在布局发生之前应用,而 RenderTransform 在布局发生之后发生。

RenderTransform 在布局完成后应用 - 这意味着 UI 元素的大小和位置已经计算完毕。此时应用变换不会移动周围的元素。

相反,您可以将变换设置为 LayoutTransform 属性 - 然后将在布局过程中应用变换。